【发布时间】:2015-08-19 11:04:50
【问题描述】:
以下是我的查询
DECLARE @DB VARCHAR(3)
SET @DB = 'PK1'
SELECT DATA FROM +@DB+_ADD
我收到一条错误消息
+ 附近的语法不正确
【问题讨论】:
标签: sql sql-server sql-server-2008
以下是我的查询
DECLARE @DB VARCHAR(3)
SET @DB = 'PK1'
SELECT DATA FROM +@DB+_ADD
我收到一条错误消息
+ 附近的语法不正确
【问题讨论】:
标签: sql sql-server sql-server-2008
+ 是一个适用于值 的运算符,例如常量、函数和列。它不适用于查询中的标识符。你可以用动态 SQL 做你想做的事:
DECLARE @DB VARCHAR(3);
SET @DB = 'PK1';
DECLARE @sql NVARCHAR(max) = 'SELECT DATA FROM ' + @DB_ + 'ADD';
EXEC sp_executesql @sql;
【讨论】:
为此,您需要动态 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
【讨论】: