1

我想将参数传递给包含动态 SQL 的存储过程。

例如,

DECLARE @sql NVARCHAR(1000)
SET @sql = 'select '+ @columnnames + ' from tablename'
EXECUTE(@sql)

但是@columnnames 是在运行时创建的字符串,通过连接两个字符串,
如@columnnames = a + ' ' + b

但是,这似乎不起作用。我想我需要转义单引号。我试过传递
a + \' \' + b ,但这也不起作用。

有什么建议么?

4

2 回答 2

6
declare @columnnames nvarchar(1000)
set @columnnames = 'a' + ' + '' '' + ' + 'b'

生产

select a + ' ' + b from tablename

当您需要在结果 varchar 中使用撇号时,请使用撇号两次。

于 2012-06-11T08:21:12.917 回答
0

你少了一个逗号...

set @columnnames = a + ',' + b
于 2012-06-11T08:07:38.930 回答