データベース用語では、外部キー は、2つのテーブル間の関係で別のテーブルの主キーフィールドにリンクされている列です。
外部キーは一種の制約であるため、SQL Serverで外部キーを作成する場合は、外部キー制約を作成する必要があります。
この記事では、Transact-SQLを使用してSQLServerで外部キー制約を作成する方法について説明します。
例
これを示す最も簡単な方法は、例を使用することです。この例では、T-SQLを使用して、ALTER TABLE
を使用して外部キー制約を作成します。 ステートメント:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
これにより、2つのテーブル(Albums
)の間に関係が作成されます テーブルとArtists)
テーブル)。これを行うには、Albums
に外部キー制約を作成します。 テーブル。 Albums.ArtistId
columnは、Artists.ArtistId
への外部キーです。 列。
これは明らかに、2つのテーブルが存在することを前提としています。そうしないと、エラーが発生します。
GO
も使用します これは実際にはT-SQLの一部ではありません。 T-SQLステートメントのバッチの終了を通知することは、さまざまなユーティリティによって認識されています。
結果を確認する
次のスクリプトを実行して、結果を確認できます。
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
これにより、Music
の外部キーが一覧表示されます データベース。データベースの名前を適切に変更してください。
データベースに外部キーが多すぎる場合は、WHERE
を使用していつでもデータベースを絞り込むことができます。 関心のある特定の外部キーの句。ワイルドカード文字(*
を使用することもできます )すべての列を返す必要がある場合。