| Author |
Topic |
|
sqllover
Constraint Violating Yak Guru
338 Posts |
Posted - 2007-02-10 : 03:04:06
|
| CREATE PROCEDURE HRUser_spsearch( @columnname varchar(50), @recordname varchar(50))Asdeclare @count bigintdeclare @sql varchar(8000) beginselect @sql='select ' + @count + '=count(*) from usermaster where ' + @columnname + ' like ''' + @recordname + '%'' ' exec(@sql)endGOif i use like this it gives error,please help me to rectify this error |
|
|
Vinnie881
Master Smack Fu Yak Hacker
1231 Posts |
|
|
sqllover
Constraint Violating Yak Guru
338 Posts |
Posted - 2007-02-10 : 04:10:31
|
| hi Vinnie881,can u please modify my coding for nmy needs please |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2007-02-10 : 04:55:28
|
[code]CREATE PROCEDURE HRUser_spsearch( @columnname varchar(50), @recordname varchar(50), @count bigint OUTPUT)Asbegin declare @sql nvarchar(4000) select @sql='select @count = count(*) from usermaster where ' + @columnname + ' like ''' + @recordname + '%'' ' exec(@sql) exec sp_executesql @sql, N'@count bigint OUTPUT', @count OUTPUTendGO[/code] KH |
 |
|
|
sqllover
Constraint Violating Yak Guru
338 Posts |
Posted - 2007-02-10 : 06:26:19
|
| hi khtan,this is my spc:CREATE PROCEDURE HRUser_spsearch( @columnname varchar(50), @recordname varchar(50), @count bigint OUTPUT)Asdeclare @sql varchar(8000)declare @count1 bigintcreate table #temp(userid varchar(50),user_name varchar(50))if isnull(@columnname, '') = '' or isnull(@recordname, '') = '' select @sql = 'select u.userid,u.user_name,u.password,c.code_description as role_code,u.expiry_date,u.created_date,u.active from [usermaster] u inner join [codeMaster] c on u.role_code=c.code order by u.userid'else begindeclare @sq1l nvarchar(4000) select @sq1l='select @count = count(*) from usermaster where ' + @columnname + ' like ''' + @recordname + '%'' ' exec(@sq1l) exec sp_executesql @sq1l, N'@count bigint OUTPUT', @count OUTPUT set @count1= @countif(@count1>=1)begin select @sql= ' select u.userid,u.user_name, u.password, c.code_description as role_code,u.expiry_date,u.created_date,u.active from [usermaster] u inner join [codeMaster] con u.role_code=c.code where u.' + @columnname + ' like ''' + @recordname + '%'' order by u.' + @columnnameexec (@sql)endelseif(@count1=0)begininsert into #temp values('no','no')select * from #tempendendGOi used ur coding in my spc it compiled sucess fully. actually if i pass column name correctly and record name worngly my result has to be userid user_name no no.but i am getting this as my result becos @count value is not passing in the @count1.so please help me to solve the error |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2007-02-10 : 09:44:29
|
can you explain what are you trying to achieve here ? KH |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2007-02-10 : 10:21:56
|
khtan: FWIW I would parameterise @recordname too - to improve the chances of getting the query cached.CREATE PROCEDURE HRUser_spsearch( @columnname varchar(50), @recordname varchar(51), @count bigint OUTPUT)Asbegin declare @sql nvarchar(4000) SELECT @recordname = @recordname + '%' select @sql='select @count = count(*) from usermaster where ' + @columnname + ' like @recordname' exec sp_executesql @sql, N'@count bigint OUTPUT, @recordname varchar(51)', @count OUTPUT, @recordnameendGO Kristen |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2007-02-10 : 10:34:14
|
"to improve the chances of getting the query cached."Yes. it will be good to do that. KH |
 |
|
|
jezemine
Master Smack Fu Yak Hacker
2886 Posts |
|
|
sqllover
Constraint Violating Yak Guru
338 Posts |
Posted - 2007-02-11 : 23:38:28
|
| hi Kristen,jezemine,khtan i got it ,thanks for ur nice reply |
 |
|
|
|