【问题标题】:Declare a table in sql [duplicate]在sql中声明一个表[重复]
【发布时间】:2015-08-19 11:04:50
【问题描述】:

以下是我的查询

DECLARE @DB VARCHAR(3)

SET @DB = 'PK1'

SELECT DATA FROM +@DB+_ADD 

我收到一条错误消息

+ 附近的语法不正确

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:

    + 是一个适用于 的运算符,例如常量、函数和列。它不适用于查询中的标识符。你可以用动态 SQL 做你想做的事:

    DECLARE @DB VARCHAR(3);
    SET @DB = 'PK1';
    
    DECLARE @sql NVARCHAR(max) = 'SELECT DATA FROM ' + @DB_ + 'ADD';
    
    EXEC sp_executesql @sql;
    

    【讨论】:

    • 感谢您的意见......
    【解决方案2】:

    为此,您需要动态 sql,例如....

    DECLARE @DB VARCHAR(3)
    DECLARE @Sql NVARCHAR(MAX);
    
    SET @DB = 'PK1'
    
    SET @Sql = N'SELECT DATA FROM ' + QUOTENAME(@DB+'_ADD');
    
    Exec sp_executesql @Sql
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多