データベース用語では、外部キー は、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を使用していつでもデータベースを絞り込むことができます。 関心のある特定の外部キーの句。ワイルドカード文字(*を使用することもできます )すべての列を返す必要がある場合。