シナリオ:
あなたはSQLServer開発者として働いており、dbo.Ordersテーブルに作成された外部キー制約を削除するスクリプトを準備する必要があります。解決策:
以下のスクリプトを使用して、dbo.Customerおよびdbo.Ordersサンプルテーブルを作成し、createtableの一部として外部キー制約を含めましょう。USE YourDatabaseName
GO
CREATE TABLE dbo.Customer (
Customerid INT PRIMARY KEY
,FName VARCHAR(100)
,LName VARCHAR(100)
,SSN VARCHAR(10)
)
CREATE TABLE dbo.Orders (
OrderId INT Identity(1, 1)
,OrderitemName VARCHAR(50)
,OrderItemAmt INT
,Customer_id INT FOREIGN KEY REFERENCES Customer(CustomerId)
)> テーブルが作成され、外部キー制約も作成されたら、以下のステートメントを使用して、テーブル名を持つ外部キー制約名を見つけることができます。
USE YourDatabaseName
GO
Select
Schema_name(Schema_id) as SchemaName,
object_name(Parent_object_id) as TableName,
name as ForeignKeyConstraintName
from sys.foreign_keys |
| テーブル名を使用してSQLServerで外部キー制約名を検索 |
これで制約名がわかったので、先に進んでドロップ制約ステートメントを記述できます。
TableAlterテーブルの外部キー制約の削除の構文SchemaName.TableNameDrop制約Constraint_Name
以下のステートメントを使用して削除しましたFK__Orders__Customer__164452B1外部キー制約。
Alter table dbo.Orders
Drop Constraint FK__Orders__Customer__164452B1 データベース内のすべての外部キー制約を削除するスクリプトを生成する場合は、このリンクを確認してください。
ビデオデモ:SQLServerで外部キー制約を削除する方法