我想将参数传递给包含动态SQL的存储过程。
例如,
DECLARE @sql NVARCHAR(1000)
SET @sql =
'select '+ @columnnames + ' from tablename'
EXECUTE(@sql)
但@columnnames是一个在运行时创建的字符串,通过连接2个字符串
喜欢
@columnnames = a +''+ b
然而,这似乎不起作用。我想我需要逃避单引号。我试过过去了 a + \'\'+ b,但这也不起作用。
有什么建议吗?
答案 0 :(得分:5)
declare @columnnames nvarchar(1000)
set @columnnames = 'a' + ' + '' '' + ' + 'b'
产生
select a + ' ' + b from tablename
在结果varchar中需要撇号时使用撇号两次。
答案 1 :(得分:0)
你错过了一个逗号......
set @columnnames = a + ',' + b