链接服务器上的OPENQUERY更新

时间:2010-08-06 14:48:36

标签: sql sql-update linked-server openquery

我想从链接服务器(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')

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

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′

我希望你这没问题吗?

2 个答案:

答案 0 :(得分:4)

我想这不是你想要打开的查询,而是你想要执行的SQL语句。所以不要使用openquery,而是使用execute。请参见示例G:http://msdn.microsoft.com/en-us/library/ms188332.aspx

所以你的剧本看起来像

execute ('your sql command here') at my_linked_server

答案 1 :(得分:1)

您是否收到语法错误? update openquery中的服务器参数缺少尾随引用。改变```my_linked_server to my_linked_server'。。