外部キー制約を削除する

外部キー制約が設定されていることで、
 ・レコードのDELETE
 ・テーブルのDROP
でエラーが発生することがあります!

エラーメッセージ

メッセージ 547、レベル 16、状態 0、行 1
DELETE ステートメントは REFERENCE 制約 “FK_Address_StateProvince_StateProvinceID” と競合しています。
競合が発生したのは、データベース “AdventureWorks2019″、テーブル “Person.Address”, column ‘StateProvinceID’ です。


外部キー制約を削除すれば、
DELETE/DROPが出来るようになります!

SQL

構文

ALTER TABLE テーブル名 DROP CONSTRAINT 外部キー制約名

--外部キー制約を削除
ALTER TABLE Person.Address DROP CONSTRAINT FK_Address_StateProvince_StateProvinceID

必要に応じて「テーブル名」の前に「スキーマ名」を付けてください。
※上記は付けています。

外部キー制約以外の制約も、上記の構文で削除できます。
※CHECK制約など。

実行結果

外部キー制約を削除することが出来ました。

備考(外部キー制約の一覧を取得)

以下の記事に
 ・外部キー制約の一覧を取得する方法
を記載しています。

タイトルとURLをコピーしました