Когда я правой кнопкой мыши на ограничение по умолчанию, и я прошу SQL Server, чтобы создать сценарий создания для него, он генерирует следующий код:Пожалуйста, объясните синтаксис SQLServer использует для создания проверочного ограничения
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] WITH NOCHECK ADD CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle] CHECK (([ExecutionToggle]=(1) OR [ExecutionToggle]=(0) OR [ExecutionToggle]=(-1)))
GO
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] CHECK CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle]
Для запись, я понимаю первый оператор ALTER, но я не понимаю, что делает второй оператор alter. Попробовал google фразу «CHECK CONSTRAINT», но получил только хиты в синтаксисе ограничений добавления.
Спасибо.
Сет
обновление
Спасибо Джо за ваш ответ. Нашел эту ссылку, которая помогает.
http://blog.sqlauthority.com/2009/11/12/sql-server-disable-check-constraint-enable-check-constraint/
Я не знал, что вы могли бы включить и отключить ограничения. Круто!
Сет
Джо, я думал, что это то, что он может сделать. Что делать, если данные не проходят тест ограничения. Что происходит тогда? Выключен ли первый запрос на изменение? –
+1: Я всегда использовал 'WITH CHECK', чтобы включить отключенное ограничение –
Joe: Вы говорите, что без второго оператора ограничение создается, но не применяется до второго оператора alter? И если вы используете WITH CHECK, и не все записи проходят тест, ограничение остается отключенным? –