【发布时间】:2013-12-28 12:58:38
【问题描述】:
我在下面的这个声明不起作用。有什么想法吗?
DECLARE @TargetDB NVARCHAR(50)
DECLARE @SourceDB NVARCHAR(50)
DECLARE @InsetRecords NVARCHAR(1000)
SET @TargetDB = 'MySSISDb'
SET @SourceDB = 'MySSISDb'
SET @InsetRecords = 'INSERT INTO + @TargetDB + .dbo.Item2(ProductNumber, ProductName) SELECT(ProductNumber, ProductName) FROM + @SourceDB + .dbo.Item'
EXEC (@InsetRecords)
【问题讨论】:
-
什么不起作用?你得到什么错误?您使用的是哪个 RDBMS?
-
动态 SQL 不会自动解析变量。试试这个:
SET @InsetRecords = 'INSERT INTO ' + @TargetDB + '.dbo.Item2(ProductNumber, ProductName) SELECT(ProductNumber, ProductName) FROM ' + @SourceDB + '.dbo.Item' -
我正在使用 SQL2008R2。这是我得到的错误。
-
Msg 102,级别 15,状态 1,第 1 行 '+' 附近的语法不正确。消息 102,级别 15,状态 1,第 1 行 ',' 附近的语法不正确。
-
感谢 SchmitzIT。我尝试了您的建议,但仍然出现问题,但如果它只有 1 列,它可以工作。知道为什么吗?非常感谢。
标签: sql sql-server sql-server-2008 insert