REFERENTIAL_CONSTRAINTS (Transact-SQL)

为当前数据库中的每个 FOREIGN KEY 约束返回一行。 该信息架构视图返回当前用户对其拥有权限的对象的相关信息。

若要从这些视图中检索信息,请指定 **INFORMATION_SCHEMA.**view_name 的完全限定名称。

列名

数据类型

说明

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)