分布式数据库删除记录:多步OLE DB操作产生错误,解决方法

5071阅读 0评论2008-11-04 wilsonwong
分类:WINDOWS

希望删除远程服务器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设为主键
上一篇:Linux程序设为后台运行
下一篇:模块加载后在/proc/modules添加一行记录