在sql中声明一个表[重复]
Posted
技术标签:
【中文标题】在sql中声明一个表[重复]【英文标题】:Declare a table in sql [duplicate] 【发布时间】:2015-08-19 11:04:50 【问题描述】:以下是我的查询
DECLARE @DB VARCHAR(3)
SET @DB = 'PK1'
SELECT DATA FROM +@DB+_ADD
我收到一条错误消息
+ 附近的语法不正确
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在sql中声明一个表[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何获取在 SQL Server 内部数据库的不同表中重复的列[重复]