繁体   English   中英

Openquery选择VS插入(SQL Server 2016)问题

[英]Openquery select into VS insert into (SQL Server 2016) Issue

我有以下SQL代码将数据动态填充到表中,但现在只需要插入。 我知道select也会创建表,而insert只是填充现有表。

这是SELECT INTO:

SET @SQL = 'Select * into destinationdb.stage.'+@Name + ' from    openquery("LINKEDSERVER", ' + '''SELECT * FROM source_db.' + @Name + ''');'

这是我尝试的INSERT INTO。

SET @SQL='insert into destinationdb.stage.'+@Name + ' * from  openquery("LINKEDSERVER", ' + '''SELECT * FROM source_db.' + @Name + ''');'

这当然给了我语法错误。

我已经尝试了许多类似的变体,并且想知道是否有人可以在INSERT INTO中发现我的语法错误?

您需要在source_db之后添加架构,并在插入到

SELECT * FROM source_db.dbo.tablename

您可以尝试以下代码。

DECLARE @SQL varchar(max) = ''
DECLARE @Name varchar(100)='tablename' 

SET @SQL = 'INSERT INTO OPENQUERY(destinationdb.stage.'+@Name + ', ''SELECT field1,field2,field3,field4 FROM db.table1'')'

经过几次尝试,我终于自己弄清楚了! 这是有效的:

SET @SQL=' insert into destinationdb.stage.'+@Name + ' select * from  openquery("LINKEDSERVER", ' + '''SELECT * FROM sourcedb.' + @Name + ''');'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM