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