【发布时间】:2020-02-06 06:17:23
【问题描述】:
假设我想在 sql 查询中选择一个常量值,我可以这样做:
select name,age,'tick' from tableA
我想使用存储过程动态生成一个 sql 查询。例如:
SELECT @SQL = 'SELECT CID,DOB, NAME, '+@Scname+' from ' + @TableName
其中@TableName、@Scname 是while 循环中动态生成的变量。这里@Scname 在@TableName 上执行查询时被解释为列名而不是常量字符串。我尝试使用如下转义字符:
SELECT @SQL = 'SELECT CID,DOB, NAME, \"'+@Scname+'\" from ' + @TableName
但它返回一个全零的浮点值,而不是@Scname 中包含的字符串。
【问题讨论】:
-
你能显示最后的@SQL 吗?
标签: sql sql-server stored-procedures