更新OPENQUERY失败

时间:2011-12-13 20:36:27

标签: mysql sql-server sql-update openquery

我在以下OPENQUERY语句中遇到错误,我试图从SQL Server对MySql数据库执行。

UPDATE OPENQUERY(MYWPDB, 'SELECT total FROM wp_tt WHERE id = 112121') SET total = 1

错误是"密钥列信息不足或不正确。更新"影响了太多行。

该声明应该更新总数'字段为' 1'的值。它是一个整数字段,而且是' id'是桌子上的主键。我使用的是SQL Server 2000。

2 个答案:

答案 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