如何将动态openquery的结果插入到现有表中?

时间:2014-09-25 20:47:29

标签: tsql insert-into openquery

如何将动态openquery下面的结果插入到现有表

  DECLARE @TSQL varchar(8000), @VAR char(2)
  SELECT  @VAR = 'CA'
  SELECT  @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'
  EXEC (@TSQL)

我尝试插入但没有工作。

    INSERT INTO TableA 
    SELECT *
    FROM (EXEC (@TSQL))

2 个答案:

答案 0 :(得分:1)

你非常接近

DECLARE @TSQL varchar(8000), @VAR char(2)
SELECT  @VAR = 'CA'
SELECT  @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'

INSERT INTO TableA
EXEC (@TSQL)

答案 1 :(得分:0)

您可以在动态字符串中执行所有操作以避免INSERT EXEC语句

DECLARE @TSQL varchar(8000), @VAR char(2)
SELECT  @VAR = 'CA'
SELECT  @TSQL = 'INSERT INTO TableA SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'

EXEC (@TSQL)