我有一个具有nvarchar(max)
参数@p1
的SP。这是逗号分隔的代码列表,例如100,200,300
等SQL Server 2005 Single引用的字符串列表失败
的SP里面我声明一个变量@p2 nvarchar(max)
和@p1
列表转换成一个单一的引用列表
set @p2 = N'''' + replace(@p1,',',''',''') + ''''
当我“中选择” @p2
这个返回正确的'100', '200', '300'
如果我再使用@p2
,例如
select x,y,z from table1 where id in (@p2)
我没有返回行吗?如果我修改相同的SQL来使用我从前面选择的相同的字符串,我得到的行确定吗?
如何将包含单引号标识符列表的字符串传递给SP并在子查询中使用它?我已经广泛使用Google,可以将列表转换为SP中的临时表并使用它,但我需要使用带引号的列表,以便使用OPTIMIZE FOR查询提示。
感谢Quassnoi! – 2011-04-20 09:21:53