- ベストアンサー
更新・削除エラーについて
かなり困っているので投稿させていただきます SQLServerで操作していて、更新・削除しようとすると以下のようなエラーが出て更新できなくなります。 更新された行はありません 行 のデータはコミットされませんでした。 エラーソース: Microsoft.VisualStudio.Data Tools. エラーメッセージ:変更、削除された行の値は、複数の行(2行)を変更するか、または行を一意なものにしません。 このエラーの解消方法が全くわかりません。 エラーの解消方法を御教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご参考まで。 http://support.microsoft.com/kb/925719/ja BUG] SQL Server Management Studio、SQL Server 2005 のテーブルの行を更新を使用するしようとすると、エラー メッセージが表示されることがあります。 このような更新がエラーになる理由は容易に推測がつくので、正直これをMSがバグと認識しているとは思いませんでした。 (ちなみに2008でも別に直っているフシはありません) 対応策はサロゲートキー(代替キー)を追加してでも主キーのあるテーブルにするか、テーブルの値を直接手打ちするのはあきらめ、 UPDATE文を使用することくらいです。
その他の回答 (2)
> 1レコードの更新を目的としています。 > 原因は全く同じデータの入ったレコードが2つ存在しているときに 発生します。 「データを一意に判別する条件がない」テーブルの場合、 まったく同じデータのレコードが複数存在することに どのような意味があるのかがわかりません。 そういったことが発生するのは、設計上起こりうる(目的としている動き?)のでしょうか?
エラーメッセージからの予測ですが一意制約キーを疑いたいです。 発行するSQL文は、 1つのテーブルに対して複数レコードの更新を目的としていますか? それとも1レコードの更新を目的としていますか? 前者の場合、キー項目に対して更新してしまっていないか? 後者の場合、複数レコードが対象となってしまうケースが無いか? の調査が必要かと
補足
1レコードの更新を目的としています。 原因は全く同じデータの入ったレコードが2つ存在しているときに発生します。 そのようなときの対処方法をお願いします。