Ограничение check задает условия для данных, помещаемых в столбец. Каждая строка, добавляемая в таблицу, или каждое значение, изменяющее значение столбца, должно соответствовать этим условиям. Это предложение может быть задано в операторе create table или alter table. Синтаксис предложения check:
[constraint c_name]
check [not for replication] expression
Выражение expression должно давать логическое значение (true или false), оно может ссылаться на любой столбец текущей таблицы (или только на текущий столбец, если определяется как ограничение на уровне столбца), но не на другие таблицы. Если присутствует опция not for replication, то условие в предложении check не проверяется в процессе репликации данных. Для базы данных или ее части должна выполняться репликация, если база хранится более чем на одном сайте. Репликация может быть использована для улучшения доступности данных.
В примере 5.9 показано, как может быть использовано предложение check.
Таблица customer, которая создается в примере 5.9, содержит столбец custgroup с соответствующим ограничением check. Система базы данных вернет ошибку, если столбец custgroup после изменения существующего значения или после добавления новой строки будет содержать значение, отличное от значения в заданном множестве: ('el', 'с2\ 'с10').