Это артефакт способа, которым ограничение написано в сценарии - хотя указывать эти параметры необязательно (поскольку они являются значениями по умолчанию для новых ограничений), тот же генератор может также генерировать параметры NOCHECK
точно таким же образом.
Документация для ALTER TABLE
указывает на два различных использования CHECK
/ NOCHECK
:
WITH CHECK | WITH NOCHECK
Указывает, используется лиданные в таблице проверяются или не проверяются на соответствие вновь добавленным или повторно включенным ограничениям FOREIGN KEY
или CHECK
.Если не указано, WITH CHECK
предполагается для новых ограничений, а WITH NOCHECK
предполагается для вновь включенных ограничений.
И:
{ CHECK | NOCHECK } CONSTRAINT
Указывает, что имя-ограничения включено или отключено.
Таким образом, одна опция говорит «проверить текущее содержимое таблицы», другая - «Проверить новые данные по мере их добавления».