CHECK_CONSTRAINTS (Transact-SQL)
针对当前数据库的每个 CHECK 约束返回一行。该信息架构视图返回当前用户对其拥有权限的对象的相关信息。
若要从这些视图中检索信息,请指定 INFORMATION_SCHEMA.view_name 的完全限定名称。
列名 |
数据类型 |
说明 |
---|---|---|
CONSTRAINT_CATALOG |
nvarchar(128) |
约束限定符。 |
CONSTRAINT_SCHEMA |
nvarchar(128) |
约束所属架构的名称。
重要提示
请勿使用 INFORMATION_SCHEMA 视图来确定对象的架构。查找对象架构的唯一可靠的方式是查询 sys.objects 目录视图或使用 OBJECT_SCHEMA_NAME 函数。
|
CONSTRAINT_NAME |
sysname |
约束名称。 |
CHECK_CLAUSE |
nvarchar(4000) |
Transact-SQL 定义语句的实际文本。 SQL Server 2008 对目录元数据中的 SQL 表达式进行解码和存储的方式不同于 SQL Server 2000。解码后的表达式的语义等同于原始文本,但是没有语法保证。例如,解码后的表达式中删除了空格。有关详细信息,请参阅SQL Server 2008 中数据库引擎功能的行为更改。 |
示例
下面的示例为在约束定义中包含 'StartDate' 的数据库中的各 CHECK 约束返回列 CONSTRAINT_CATALOG、CONSTRAINT_SCHEMA、CONSTRAINT_NAME 和 CHECK_CLAUSE。
USE AdventureWorks;
GO
SELECT CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS
WHERE CHECK_CLAUSE LIKE N'%StartDate%';
下面的示例从 CHECK_CONSTRAINTS 和 CONSTRAINT_COLUMN_USAGE 视图中返回列,以便显示与约束以及对其定义约束的列有关的信息。
USE AdventureWorks;
GO
SELECT ccu.TABLE_SCHEMA, ccu.TABLE_NAME, ccu.COLUMN_NAME, cc.CONSTRAINT_SCHEMA, cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS cc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
ON cc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME;