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)