如何将参数传递给存储过程

时间:2010-07-15 11:44:12

标签: sql tsql sql-server-2008 stored-procedures

我在Windows Server 2008 Enterprise上使用SQL Server 2008 Enterprise。在存储过程中,我需要将参数传递给select-where-like语句。例如,

@department是存储过程输入参数,其类型为varchar(20),

select * from sometable where somecolumn LIKE '%@department%' 

但似乎我上面的陈述不起作用,任何想法如何将参数@department传递给like语句?

提前谢谢, 乔治

6 个答案:

答案 0 :(得分:8)

select * /*But don't use * in production!*/
from sometable 
where somecolumn 
LIKE '%' + @department + '%' 

答案 1 :(得分:4)

你连接字符串:

select * from sometable where somecolumn LIKE '%' + @department + '%'

答案 2 :(得分:2)

这是一个变量,它超出了引号。

select * from sometable where somecol like '%' + @department + '%'

或者,更优选地,将%s添加到变量中并直接使用

答案 3 :(得分:2)

尝试:

select * from sometable where somecolumn LIKE '%' + @department + '%'

答案 4 :(得分:2)

你可以这样做:

select * from sometable where somecolumn LIKE '%' + @department + '%'

答案 5 :(得分:0)

select * from sometable 
where CHARINDEX(@department,somecolumn)>0 

您也可以使用CHARINDEX功能。