Поделиться через


CHECK_CONSTRAINTS (Transact-SQL)

Возвращает одну строку для каждого проверочного ограничения в текущей базе данных. Это представление информационной схемы возвращает сведения об объектах, на которые у текущего пользователя есть разрешения.

Чтобы получить сведения из этих представлений, укажите полное имя 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 Server 2000 способом расшифровки и хранения выражений SQL в метаданных каталога. Семантика расшифрованных выражений соответствует исходному тексту, однако правильность синтаксиса не гарантируется. Например, пробельные символы удаляются из дешифрованного выражения. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2008.

Примеры

В следующем примере возвращаются столбцы CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME и CHECK_CLAUSE для каждого ограничения CHECK в базе данных, в определении которого содержится StartDate.

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;