REFERENTIAL_CONSTRAINTS (Transact-SQL)

針對目前資料庫中的每個 FOREIGN KEY 條件約束,各傳回一個資料列。 這個資訊結構描述檢視會傳回目前使用者有權限的物件之相關資訊。

若要從這些檢視中擷取資訊,請指定 **INFORMATION_SCHEMA.**view_name 的完整名稱。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

資料行名稱

資料類型

描述

CONSTRAINT_CATALOG

nvarchar(128)

條件約束限定詞。

CONSTRAINT_SCHEMA

nvarchar(128)

包含條件約束之結構描述的名稱。

重要事項重要事項

請勿使用 INFORMATION_SCHEMA 檢視來判斷物件的結構描述。尋找物件之結構描述的唯一可靠方式就是查詢 sys.objects 目錄檢視。

CONSTRAINT_NAME

sysname

條件約束名稱。

UNIQUE_CONSTRAINT_CATALOG

nvarchar(128)

UNIQUE 條件約束限定詞。

UNIQUE_CONSTRAINT_SCHEMA

nvarchar(128)

包含 UNIQUE 條件約束的結構描述名稱。

重要事項重要事項

請勿使用 INFORMATION_SCHEMA 檢視來判斷物件的結構描述。尋找物件之結構描述的唯一可靠方式就是查詢 sys.objects 目錄檢視。

UNIQUE_CONSTRAINT_NAME

sysname

UNIQUE 條件約束。

MATCH_OPTION

varchar(7)

參考條件約束相符狀況。 一律傳回 SIMPLE。 這表示未定義相符項目。 當符合下列條件之一時,狀況就視為相符:

  • 外部索引鍵資料行至少有一個值是 NULL。

  • 外部索引鍵資料行中的所有值都不是 NULL,且主索引鍵資料表中有一個含相同索引鍵的資料列。

UPDATE_RULE

varchar(11)

當 Transact-SQL 陳述式違反這個條件約束所定義的參考完整性時,所採取的動作。

傳回下列項目之一:

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

如果這個條件約束的 ON UPDATE 指定了 NO ACTION,就不會將條件約束所參考的主索引鍵之更新傳播到外部索引鍵。 如果這類的主索引鍵更新會因為至少有一個外部索引鍵包含相同的值,而造成參考完整性違規,則 SQL Server 不會變更父系和參考資料表。 SQL Server 也會引發錯誤。

如果這個條件約束的 ON UPDATE 指定了 CASCADE,就會將主索引鍵值的變更傳播到外部索引鍵值。

DELETE_RULE

varchar(11)

當 Transact-SQL 陳述式違反這個條件約束所定義的參考完整性時,所採取的動作。

傳回下列項目之一:

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

如果這個條件約束的 ON DELETE 指定了 NO ACTION,就不會將條件約束所參考的主索引鍵之刪除傳播到外部索引鍵。 如果這類的主索引鍵刪除會因為至少有一個外部索引鍵包含相同的值,而造成參考完整性違規,則 SQL Server 不會變更父系和參考資料表。 SQL Server 也會引發錯誤。

如果這個條件約束的 ON DELETE 指定了 CASCADE,就會將主索引鍵值的變更傳播到外部索引鍵值。

請參閱

參考

系統檢視 (Transact-SQL)

資訊結構描述檢視 (Transact-SQL)

sys.indexes (Transact-SQL)

sys.objects (Transact-SQL)

sys.foreign_keys (Transact-SQL)