0

SQL Server から MySql データベースに対して実行しようとしている次の OPENQUERY ステートメントでエラーが発生します。

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

エラーは「キー列情報が不十分であるか正しくありません。更新の影響を受けた行が多すぎます」です。

このステートメントは、「合計」フィールドを値「1」に更新する必要があります。これは整数フィールドで、「id」はテーブルの主キーです。SQL Server 2000 を使用しています。

4

2 に答える 2

2

iSeries を更新する openquery で同じ問題が発生しました。私のopenqueryもカーソル内にあります。修正は、選択にキー列を含めることです。

したがって、あなたの場合は次のようになります。

UPDATE OPENQUERY(MYWPDB, 'SELECT key1, key2, total FROM wp_tt WHERE id = 112121') SET total = 1
于 2013-09-13T12:23:21.813 に答える
1

クエリに問題がないことがわかりました。ストアド プロシージャ内のカーソル操作内でステートメントを実行しようとしていました。カーソル操作以外でテストしたところ、正常に処理されました。

ただし、カーソル内で動作させるにはまだ必要だったので、掘り下げ続ける必要があり、最終的に 4 部構成の構文でうまくいくことがわかりました。そのため、クエリは次のようになりました。

UPDATE MYWPDB...wp_tt SET total = 1 WHERE id = 112121
于 2011-12-14T04:41:18.930 に答える