sql存储过程参数单引号

时间:2013-12-27 10:00:05

标签: sql sql-server stored-procedures

以下是存储过程

create procedure testpro
@screen varchar(10)
as
begin
declare @query varchar(max)
set @query = 'SELECT * FROM
--
--{code}
--

WHERE SCREEN_NAME = ' + @SCREENNAME + ' AND  Ord=3 ORDER BY date DESC'

此处SCREEN_NAME ='正常'应该是输入,但在上面我的过程中,查询提供输入为SCREEN_NAME =正常,因此显示错误,因为屏幕名称是varchar .. 如何使用单个参数

给出上述代码中的参数

2 个答案:

答案 0 :(得分:3)

您不需要在引号''中包装参数。所以只需删除引号并使用

WHERE SCREEN_NAME = @SCREENNAME  ORDER BY date DESC

修改

你需要逃避',我还没有测试过它

使用

 WHERE SCREEN_NAME = ''' + @SCREENNAME + ''' AND  Ord=3 ORDER BY date DESC'

答案 1 :(得分:1)

试试这个:

只需从查询中删除单引号''即可。

set @query = 'SELECT * FROM' 
{ Code Here }
@query = @query +' WHERE SCREEN_NAME = ''' + @SCREENNAME + ''' And Ord=3  Order By date Desc'