3
當我用鼠標右鍵單擊默認約束的語法,我問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語句的作用。試圖谷歌「CHECK CONSTRAINT」的短語,但只獲得點擊添加約束語法。
謝謝。
賽斯
更新
喬感謝您的回答。找到這個鏈接有幫助。
http://blog.sqlauthority.com/2009/11/12/sql-server-disable-check-constraint-enable-check-constraint/
我不知道,你可以啓用和禁用約束。涼!
賽斯
喬,我認爲這是它可能做的。如果數據沒有通過約束測試會怎樣?然後會發生什麼?第一個alter語句失敗了嗎? – 2010-11-15 20:24:37
+1:我一直使用'WITH CHECK'來啓用禁用的約束條件 – 2010-11-15 20:27:35
Joe,你是說如果沒有第二條語句,就會創建約束條件,但是直到第二條alter語句才執行約束條件?如果你使用WITH CHECK而不是所有的記錄都通過了測試,那麼約束仍然被禁用? – 2010-11-15 20:34:02