希望删除远程服务器serv2数据库db2中的表tb2中的部分行:
delete from serv2.db2.dbo.tb2 where id in (select id from tb3),表tb2和tb3的字段如下:
tb2:id,name
tb3:id,number
执行后报错:
服务器: 消息 7306,级别 16,状态 2,行 1
未能打开表 '"serv2"."dbo"."tb2"'(来自 OLE DB 提供程序 'SQLOLEDB')。 提供程序未能支持行查找位置。 提供程序指出与其它属性或要求发生了冲突。
[OLE/DB provider returned message: 多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' IOpenRowset::OpenRowset returned 0x80040e21: [PROPID=DBPROP_BOOKMARKS VALUE=True STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_COMMANDTIMEOUT VALUE=600 STATUS=DBPROPSTATUS_OK], [PROPID=Unknown PropertyID VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetLocate VALUE=True STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_IRowsetChange VALUE=True...
解决方法:tb2.id设为主键
阅读(5013) | 评论(0) | 转发(0) |