在 SQL 中选择变量字符串名称 对于存储过程,请选择"查询"



假设我想在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中的字符串。

我认为以下内容应该有效

SET @SQL = 'SELECT CID,DOB, NAME,'+''''+@Scname+''''+' from '+ @TableName

尝试

SELECT @SQL = 'SELECT CID,DOB, NAME,' + QUOTENAME(@Scname, '''') + ' from ' + @TableName

最新更新