次の方法で共有


REFERENTIAL_CONSTRAINTS (Transact-SQL)

現在のデータベース内の FOREIGN KEY 制約ごとに 1 行のデータを返します。この情報スキーマ ビューは、現在のユーザーが権限を所有しているオブジェクトについての情報を返します。

このビューから情報を取得するには、INFORMATION_SCHEMA.view_name の完全修飾名を指定します。

列名

データ型

説明

CONSTRAINT_CATALOG

nvarchar(128)

制約修飾子

CONSTRAINT_SCHEMA

nvarchar(128)

制約を含むスキーマの名前です。

重要な注意事項重要
オブジェクトのスキーマを判定するのに INFORMATION_SCHEMA ビューを使用しないでください。オブジェクトのスキーマを検出する唯一の信頼性のある方法は、sys.objects カタログ ビューに対してクエリを実行するか、OBJECT_SCHEMA_NAME 関数を使用する方法です。

CONSTRAINT_NAME

sysname

制約名。

UNIQUE_CONSTRAINT_CATALOG

nvarchar(128)

UNIQUE 制約修飾子です。

UNIQUE_CONSTRAINT_SCHEMA

nvarchar(128)

UNIQUE 制約を含むスキーマの名前です。

重要な注意事項重要
オブジェクトのスキーマを判定するのに INFORMATION_SCHEMA ビューを使用しないでください。オブジェクトのスキーマを検出する唯一の信頼性のある方法は、sys.objects カタログ ビューに対してクエリを実行するか、OBJECT_SCHEMA_NAME 関数を使用する方法です。

UNIQUE_CONSTRAINT_NAME

sysname

UNIQUE 制約。

MATCH_OPTION

varchar(7)

参照に関する制約の一致条件です。常に SIMPLE を返します。これは、一致条件が定義されていないことを表します。次のいずれかに当てはまる場合には、条件は一致したと見なされます。

  • 外部キー列内の少なくとも 1 つの値が NULL である。

  • 外部キー列のすべての値が NULL でなく、主キー テーブルに同じキーの行がある。

UPDATE_RULE

varchar(11)

この制約によって定義される参照整合性に Transact-SQL ステートメントが違反したときに実行されるアクションです。

次のいずれかを返します。

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

この制約の ON UPDATE で NO ACTION が指定されている場合、制約内で参照されている主キーの更新が外部キーに反映されません。少なくとも 1 つの外部キーに同じ値が含まれるために、このような主キーの更新が参照整合性違反を引き起こす場合は、SQL Server による親テーブルと参照元テーブルへの変更は実行されません。また SQL Server によってエラーが発生します。

この制約の ON UPDATE で CASCADE が指定されている場合は、主キーの値の変更が外部キーの値に自動的に反映されます。

DELETE_RULE

varchar(11)

この制約によって定義される参照整合性に Transact-SQL ステートメントが違反したときに実行されるアクションです。

次のいずれかを返します。

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

この制約の ON DELETE で NO ACTION が指定されている場合、制約内で参照されている主キーの削除が外部キーに反映されません。少なくとも 1 つの外部キーに同じ値が含まれるために、このような主キーの削除が参照整合性違反を引き起こす場合は、SQL Server による親テーブルと参照元テーブルへの変更は実行されません。また SQL Server によってエラーが発生します。

この制約の ON DELETE で CASCADE が指定されている場合、主キーの値の変更が外部キーの値に自動的に反映されます。

次の例では、データベースの Sales スキーマにある各 FOREIGN KEY 制約の情報を返します。

USE AdventureWorks;
GO

SELECT CONSTRAINT_SCHEMA, CONSTRAINT_NAME, UNIQUE_CONSTRAINT_SCHEMA, UNIQUE_CONSTRAINT_NAME, 
    MATCH_OPTION, UPDATE_RULE, DELETE_RULE
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'Sales';