2

我正在尝试在链接服务器上执行查询,但我需要本地结果。

DECLARE @test TABLE
(
greeting CHAR(5)
)

INSERT INTO @test
EXEC('select ''hello'' as greeting')

SELECT * FROM @test

使用EXEC()andINSERT INTO但是,显然查询是在本地执行的。

DECLARE @test TABLE
(
greeting CHAR(5)
)

INSERT INTO @test
EXEC('select ''hello'' as greeting') AT LINKED_SERVER

SELECT * FROM @test

根本不起作用。

SELECT greeting FROM OpenQuery(LINKED_SERVER,'SELECT''hello'' AS greeting')

完全实现了我想要的,但我需要使用动态字符串,唯一的方法是使我的整个查询成为一个巨大的字符串并将其放入我不想做的 EXEC() 中因为真的很丑……

谢谢你的帮助!

4

1 回答 1

2

您可以使用以下内容:

INSERT INTO @test
EXEC('select TOP 1 ''hello'' as greeting FROM LINKED_SERVER.SomeDB.dbo.SysObjects')

假设您实际上不想只得到“你好”这个词……您可能想做一些事情,例如从表中实际选择一个值,那么上面应该更可能是您想要的。

于 2011-02-12T19:08:37.517 回答