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