Share via


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 中對於 Database Engine 功能的行為變更>。

範例

下列範例會傳回資料庫中,條件約束的定義含有 '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;