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 を返します。これは、一致条件が定義されていないことを表します。次のいずれかに当てはまる場合には、条件は一致したと見なされます。
|
UPDATE_RULE |
varchar(11) |
この制約によって定義される参照整合性に Transact-SQL ステートメントが違反したときに実行されるアクションです。 次のいずれかを返します。
この制約の ON UPDATE で NO ACTION が指定されている場合、制約内で参照されている主キーの更新が外部キーに反映されません。少なくとも 1 つの外部キーに同じ値が含まれるために、このような主キーの更新が参照整合性違反を引き起こす場合は、SQL Server による親テーブルと参照元テーブルへの変更は実行されません。また SQL Server によってエラーが発生します。 この制約の ON UPDATE で CASCADE が指定されている場合は、主キーの値の変更が外部キーの値に自動的に反映されます。 |
DELETE_RULE |
varchar(11) |
この制約によって定義される参照整合性に Transact-SQL ステートメントが違反したときに実行されるアクションです。 次のいずれかを返します。
この制約の 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';