【问题标题】:selecting a variable string name in sql select query in case of stored procedures在存储过程的情况下,在 sql select 查询中选择变量字符串名称
【发布时间】: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


【解决方案1】:

我认为以下应该可行

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

【讨论】:

    【解决方案2】:

    试试

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

    【讨论】:

    • 学到了一些新东西。
    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多