SQL Server:データベースの構造変更をスムーズに!外部キー制約の削除方法を完全網羅
SQL Server で外部キー制約を削除する方法
SQL Server では、外部キー制約を使用して、関連するテーブル間のデータ整合性を保ちます。しかし、場合によっては外部キー制約を削除する必要が生じることもあります。
本記事では、SQL Server Management Studio と Transact-SQL の 2 つの方法を使用して、外部キー制約を削除する方法をわかりやすく解説します。
方法 1: SQL Server Management Studio を使用する
- SQL Server Management Studio を開き、データベースに接続します。
- オブジェクト エクスプローラーで、外部キー制約を削除したいテーブルを展開します。
- [キー] フォルダを展開します。
- 削除したい外部キー制約を右クリックし、 [削除] を選択します。
- [オブジェクトの削除] ダイアログボックスで、[OK] をクリックします。
方法 2: Transact-SQL を使用する
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
上記のクエリを実行するには、以下の情報に置き換えます。
- table_name: 外部キー制約を削除するテーブルの名前
- constraint_name: 削除する外部キー制約の名前
例
ALTER TABLE Orders
DROP CONSTRAINT FK_Orders_Customers;
このクエリは、Orders テーブルから FK_Orders_Customers という外部キー制約を削除します。
注意事項
- 外部キー制約を削除すると、参照整合性が保証されなくなります。削除前に、関連するデータに整合性がないかどうかを確認してください。
ALTER TABLE Orders
DROP CONSTRAINT FK_Orders_Customers;
説明:
例 2: Products
テーブルから FK_Products_Categories
外部キー制約を削除
ALTER TABLE Products
DROP CONSTRAINT FK_Products_Categories;
- 上記の例はあくまでサンプルです。実際のクエリを実行する前に、テーブル名と制約名を置き換えてください。
- 外部キー制約を削除する前に、関連するデータに整合性がないかどうかを確認してください。
EXEC sp_dropconstraint @objectname = 'table_name',
@constraintname = 'constraint_name';
EXEC sp_dropconstraint @objectname = 'Orders',
@constraintname = 'FK_Orders_Customers';
方法 4: DROP CONSTRAINT
DDL ステートメントを使用する
DROP CONSTRAINT constraint_name
FROM table_name;
DROP CONSTRAINT FK_Orders_Customers
FROM Orders;
- 上記の方法 3 と方法 4 は、SQL Server 2000 以降で使用できます。
sql-server database foreign-keys