• ベストアンサー

更新・削除エラーについて

かなり困っているので投稿させていただきます SQLServerで操作していて、更新・削除しようとすると以下のようなエラーが出て更新できなくなります。 更新された行はありません 行 のデータはコミットされませんでした。 エラーソース: Microsoft.VisualStudio.Data Tools. エラーメッセージ:変更、削除された行の値は、複数の行(2行)を変更するか、または行を一意なものにしません。 このエラーの解消方法が全くわかりません。 エラーの解消方法を御教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.3

ご参考まで。 http://support.microsoft.com/kb/925719/ja BUG] SQL Server Management Studio、SQL Server 2005 のテーブルの行を更新を使用するしようとすると、エラー メッセージが表示されることがあります。 このような更新がエラーになる理由は容易に推測がつくので、正直これをMSがバグと認識しているとは思いませんでした。 (ちなみに2008でも別に直っているフシはありません) 対応策はサロゲートキー(代替キー)を追加してでも主キーのあるテーブルにするか、テーブルの値を直接手打ちするのはあきらめ、 UPDATE文を使用することくらいです。

その他の回答 (2)

noname#111860
noname#111860
回答No.2

> 1レコードの更新を目的としています。 > 原因は全く同じデータの入ったレコードが2つ存在しているときに 発生します。 「データを一意に判別する条件がない」テーブルの場合、 まったく同じデータのレコードが複数存在することに どのような意味があるのかがわかりません。 そういったことが発生するのは、設計上起こりうる(目的としている動き?)のでしょうか?

noname#111860
noname#111860
回答No.1

エラーメッセージからの予測ですが一意制約キーを疑いたいです。 発行するSQL文は、 1つのテーブルに対して複数レコードの更新を目的としていますか? それとも1レコードの更新を目的としていますか? 前者の場合、キー項目に対して更新してしまっていないか? 後者の場合、複数レコードが対象となってしまうケースが無いか? の調査が必要かと

2005073
質問者

補足

1レコードの更新を目的としています。 原因は全く同じデータの入ったレコードが2つ存在しているときに発生します。 そのようなときの対処方法をお願いします。

関連するQ&A