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. 在查询的计算机上启用了 Ad hok
  5. 通过 openrowset 查询的计算机上启用了远程连接
  6. 我可以 ping 服务器 (AB01S)

到目前为止,我已经尝试通过 GUI 和sp_addlinkserver.

4

1 回答 1

1

我发现问题了!!

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

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

exec sp_dropserver @@servername
exec sp_addserver 'AB01S', local
exec sp_serveroption 'AB01S', 'data access' , 'true'
于 2012-07-26T07:22:58.430 回答