2012-07-25 68 views
0

我已經花了兩天時間到處尋找解決方案,但沒有任何運氣。未能從鏈接服務器中刪除記錄

我有這個查詢從遠程服務器上刪除記錄:

delete from OPENROWSET('SQLNCLI', 'Server=AB01S\SQLEXPRESS;Database=ShopData;Trusted_Connection=yes', 'Select receipt_n,action_in, action_ty, action_field_name,action_field_type,action_field_data, terminal from tblData where receipt_n= 1 and terminal = 1'); 

和我收到此錯誤:

OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.". 
Msg 7202, Level 11, State 1 

它也建議使用sp_addlinkedserver添加鏈接的服務器。

一些注意事項:

  1. 這種情況僅此特定的計算機+遠程服務器上。在2個不同的電臺(計算機+服務器),它工作得很好。
  2. 插入到OpenRowSet工作正常。
  3. 從OpenRowSet中選擇*正在工作正常。 =>更改刪除以選擇*工作正常。
  4. 廣告鶴的是,查詢
  5. 遠程連接的計算機上啓用通過OPENROWSET
  6. 我可以ping服務器(AB01S)

到目前爲止,我已經嘗試添加鏈接被查詢的計算機上啓用通過GUI設置和sp_addlinkserver

回答

1

我發現了問題!

服務器名稱(出於某種原因)不正確。 @@servername返回AB01S_88

的解決方案是: 運行下面的代碼,然後重新啓動服務:

exec sp_dropserver @@servername 
exec sp_addserver 'AB01S', local 
exec sp_serveroption 'AB01S', 'data access' , 'true'