SQL Serverデータベース内のすべての信頼できない外部キー制約のリストを返すには、以下のT-SQLコードを実行できます。
信頼できない外部キーとは、is_not_trusted
を持つ外部キーです。 フラグを1
に設定 。
例1-信頼できない外部キー制約のみを返す
このクエリは、現在のデータベース内の信頼できない外部キー制約のみを返します。この例では、制約の名前、信頼できるステータス、および有効/無効なステータスのみを返します。
SELECT name AS 'Constraint', is_not_trusted, is_disabled FROM sys.foreign_keys WHERE is_not_trusted = 1;
結果:
+------------------------+------------------+---------------+ | Constraint | is_not_trusted | is_disabled | |------------------------+------------------+---------------| | FK_BandMember_Band | 1 | 1 | | FK_BandMember_Musician | 1 | 0 | +------------------------+------------------+---------------+
これは、sys.foreign_keys
にクエリを実行します システムビュー。 WHERE
であるため、信頼できない制約のみが返されることがわかっています。 句は、is_not_trusted
を持つ行のみを指定します 列を1
に設定 。
信頼できるのみを返品する場合 外部キー制約については、1
を変更するだけです。 0
へ 。
is_disabled
も含めました フラグは、制約が現在有効になっているかどうかを示しているためです。制約の1つが有効になっていて、もう1つが有効になっていないことがわかります。
これは、制約が有効になっている場合でも、制約が信頼できない可能性があるという事実を示しています。これは、制約を有効化(または作成)するときに、有効化する前に既存のデータをチェックするオプションがあるためです。既存のデータをチェックしないことを選択した場合、制約を有効にすると、制約は信頼されないままになります。
これも同じクエリですが、今回は各制約のテーブルと参照テーブルを含めます。
SELECT name AS 'Constraint', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Table', is_disabled, is_not_trusted FROM sys.foreign_keys WHERE is_not_trusted = 1;
結果:
+------------------------+------------+--------------------+---------------+------------------+ | Constraint | Table | Referenced Table | is_disabled | is_not_trusted | |------------------------+------------+--------------------+---------------+------------------| | FK_BandMember_Band | BandMember | Band | 1 | 1 | | FK_BandMember_Musician | BandMember | Musician | 0 | 1 | +------------------------+------------+--------------------+---------------+------------------+>
例2–すべての外部キー制約を返す
次のクエリはすべてを返します 現在のデータベースの外部キー制約(信頼できないデータベースだけでなく):
SELECT name AS 'Constraint', is_not_trusted, is_disabled FROM sys.foreign_keys;
結果:
+--------------------------------+------------------+---------------+ | Constraint | is_not_trusted | is_disabled | |--------------------------------+------------------+---------------| | FK_BandMember_Band | 1 | 1 | | FK_BandMember_Musician | 1 | 0 | | FK_MembershipPeriod_BandMember | 0 | 0 | +--------------------------------+------------------+---------------+