我在尝试从 SQL Server 对 MySql 数据库执行的以下 OPENQUERY 语句中遇到错误。
UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1
错误是“键列信息不足或不正确。更新影响了太多行”。
该语句应该将“total”字段更新为“1”的值。它是一个整数字段,“id”是表上的主键。我正在使用 SQL Server 2000。
我在尝试从 SQL Server 对 MySql 数据库执行的以下 OPENQUERY 语句中遇到错误。
UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1
错误是“键列信息不足或不正确。更新影响了太多行”。
该语句应该将“total”字段更新为“1”的值。它是一个整数字段,“id”是表上的主键。我正在使用 SQL Server 2000。
我对更新 iSeries 的 openquery 有同样的问题。我的 openquery 也在游标内。解决方法是在选择中包含键列。
所以在你的情况下,它会是这样的:
UPDATE OPENQUERY(MYWPDB, 'SELECT key1, key2, total FROM wp_tt WHERE id = 112121') SET total = 1
事实证明查询没有任何问题。我试图在存储过程中的游标操作中执行语句。我在游标操作之外对其进行了测试,并且处理得很好。
然而,由于我仍然需要它在光标内工作,我不得不继续挖掘,最终发现四部分语法可以解决问题。所以查询改为:
UPDATE MYWPDB...wp_tt SET total = 1 WHERE id = 112121