REFERENTIAL_CONSTRAINTS (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例

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

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

列名称 数据类型 描述
CONSTRAINT_CATALOG nvarchar(128) 约束限定符。
CONSTRAINT_SCHEMA nvarchar(128) 包含该约束的架构的名称。

重要说明:请勿使用 INFORMATION_SCHEMA 视图来确定对象的架构。 INFORMATION_SCHEMA 视图仅表示对象的元数据子集。 查找对象架构的唯一可靠的方式是查询 sys.objects 目录视图。
CONSTRAINT_NAME sysname 约束名称。
UNIQUE_CONSTRAINT_CATALOG nvarchar(128) UNIQUE 约束限定符。
UNIQUE_CONSTRAINT_SCHEMA nvarchar(128) 包含 UNIQUE 约束的架构的名称。

重要说明:请勿使用 INFORMATION_SCHEMA 视图来确定对象的架构。 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)