mysql链接服务器,update报错

select * from Openquery(MySQL, 'SELECT * FROM official.sys_hospital')

执行更新语句:

update Openquery(MySQL, 'SELECT * FROM bigdata_official.sys_hospital WHERE id=2') set states=0;

报错,错误信息:

链接服务器"MySQL"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "无法为更新定位行。一些值可能已在最后一次读取后已更改。"。
消息 7343,级别 16,状态 4,第 1 行
链接服务器 "MySQL" 的 OLE DB 访问接口 "MSDASQL" 无法 UPDATE 表 "[MSDASQL]"。行集正在使用乐观并发机制,而自上次提取或重新同步包含列值的行后,该列值又有更改。

错误原因:mysql表内 id=2 的数据 states 已经为 0,无法更新

解决方案:

update Openquery(MySQL, 'SELECT * FROM bigdata_official.sys_hospital WHERE states=1 and id=2') set states=0;
原文地址:https://www.cnblogs.com/wangx036/p/6672658.html