链接服务器上的 OPENQUERY 更新

Wer*_*ner 1 sql linked-server openquery sql-update

我想通过链接服务器(openquery)执行以下语句:

UPDATE SAP_PLANT 
SET (OWNER, OWNER_COUNTRY) = (SELECT import.AFNAME, import.COUNTRY
                                FROM SAP_IMPORT_CUSTOMERS import, SAP_PLANT plant
                                WHERE plant.SAP_FL = import.SAP_NO
                                AND import.role ='OWNER')
Run Code Online (Sandbox Code Playgroud)

我试图将其形成以下语法,但没有成功:(

update openquery(‘my_linked_server, ‘select column_1, column_2 from table_schema.table_name where pk = pk_value’)
set column_1 = ‘my_value1?, column_2 = ‘my_value2?
Run Code Online (Sandbox Code Playgroud)

我希望这对你来说没有问题?

msh*_*thn 5

我想这实际上不是您要打开的查询,而是要执行的 SQL 语句。因此,您应该使用执行而不是 openquery。请参阅此处的示例 G:http : //msdn.microsoft.com/en-us/library/ms188332.aspx

所以你的脚本应该看起来像

execute ('your sql command here') at my_linked_server
Run Code Online (Sandbox Code Playgroud)