[英]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.