无法从链接服务器删除记录

时间:2012-07-25 08:35:03

标签: sql-server-2005 linked-server openrowset sqlncli

过去两天我一直在寻找解决问题的办法,但没有运气。

我有这个查询从远程服务器删除记录:

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. 的计算机上启用了广告
  6. 通过openrowset
  7. 在正在查询的计算机上启用远程连接
  8. 我可以ping服务器(AB01S)
  9. 到目前为止,我尝试通过GUI和sp_addlinkserver添加链接设置。

1 个答案:

答案 0 :(得分:1)

我发现了问题!!

服务器名称(由于某种原因)不正确。 @@servername返回AB01S_88

解决方案是: 运行以下代码,然后重新启动服务:

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