在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中如何删除一个表中重复的记录?

声明重复的表插入值

如何获取在 SQL Server 内部数据库的不同表中重复的列[重复]

sql数据库中出现重复行数据,如何删除这些重复记录?

怎样写SQL查询,在同一个数据库,同一个表,同一个字段查出重复数据?

SQL SERVER怎么去掉重复数据?