2014-09-25 48 views
1

我怎样才能插入下面的动态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)) 

回答

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) 
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) 
相关问题