削除クエリでレコードを削除できない

削除クエリの実行時に「削除できません。」という内容のダイアログボックスが表示される場合は、キー違反かロック違反が原因です。キー違反は削除対象のテーブルが、参照整合性が設定されているリレーションシップの一側テーブルに当たる場合に発生します。

削除するレコードが多側テーブルの親レコードになっている場合、レコードを削除すると参照整合性が維持できなくなるため、削除できません。参照整合性を解除すれば削除できますが、レコードの整合性が崩れてしまいます。

ロック違反は、削除しようとしたレコードを別のユーザーがロックしているときに発生します。この場合は、別のユーザーがロックを解除するのを待てば、レコードを削除できます。

指定外のデータまで削除されてしまった

削除クエリの対象になるテーブルが、参照整合性と連鎖削除が設定されているリレーションシップの一側テーブルに当たる場合、レコードを削除すると、多側テーブルのレコードが連動して削除されてしまいます。

一側と多側の双方のテーブルから削除したいという意図がない限り、通常は連鎖削除の設定を解除しておくようにしましょう。詳しくは、連鎖削除って何?を参照してください。

関連まとめ記事