以下是存储过程
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 .. 如何使用单个参数
给出上述代码中的参数答案 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'