Разница между операциями ALTER TABLE с проверкой (WITH CHECK) и без проверки ограничений (WITH NOCHECK) заключается в том, как происходит добавление ограничений в таблицу. 15
WITH CHECK обеспечивает проверку, согласуются ли с новым ограничением все существующие записи в таблице. 5 Если данные удовлетворяют новым условиям, ограничение вступает в силу и становится обязательным для новых записей. 5
WITH NOCHECK, в свою очередь, добавляет ограничение без проверки уже имеющихся данных. 5 Это удобно, когда известно, что некоторые записи не соответствуют вновь установленным условиям, но исправление данных заложено в планы на будущее, либо важно быстро создать ограничение. 5
По умолчанию используется значение WITH CHECK, которое проверяет на соответствие ограничениям. 14
Использование WITH NOCHECK может быть полезно, когда важно сосредоточиться на производительности или нужно работать с устаревшими данными, нарушающими правила. 5 Однако ограничения, добавленные с помощью WITH NOCHECK, считаются недоверенными, что может затруднить оптимизацию запросов. 5