我有三台数据库服务器
A、B、C
B通过链接服务器删除A服务器的数据时会报错:
链接服务器"TEST"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。"。
Msg 7202, Level 11, State 2, Line 1
在 sysservers 中找不到服务器 'XXXXX'。请执行 sp_addlinkedserver 将该服务器添加到 sysservers。
这里的TEST就是A服务器
XXXXX是C服务器。
因为找不到问题,我做了大量的测试:
1、直接在A服务器上删除数据,没有问题
2、B服务器上的查询分析器连接A服务器删除数据,没有问题
3、B服务器通过链接服务器删除A服务器另一个数据库的数据,没有问题
4、C服务器通过链接服务器删除A服务器删除数据,没有问题。
5、B服务器上新建一个新的链接服务器删除A服务器的数据也会报错。
谁能帮我解决这个问题?
出错的必要条件:
1、B服务器
2、链接服务器连接A服务器
在B服务器报错sql:
delete from TEST.DATABASE.dbo.table1 where id in (select id from table1)
是不是你删除A的数据时,要删除的数据 间接 和C有联系,
你只在A上建立了A到C的链接,所以你在A上直接删除是没问题的,
而且你删除A上的另一数据库也没会出错..
那么..你要不在B上建立一个B到C的连接,之后再从B上删除A的数据看看还会不会报错呢..
最近迁移了数据库,问题没有了。但是我觉得可能是这个原因。。。。
C删A可以, 说明A没问题。
B到A的链接服务器你没建好。 问题肯定出在B身上。
第三个测试,说明链接服务器是可以用的。
3、B服务器通过链接服务器删除A服务器另一个数据库的数据,没有问题
同一个链接服务器,只不能删除那个特定数据库的数据。其它数据库的数据都可以删除。权限都是有的。而且报的错也不是跟权限相关的。