SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
ALTER TABLE [dbo].[atr_cont_b] WITH NOCHECK ADD
?CONSTRAINT [PK_atr_cont_b] PRIMARY KEY? CLUSTERED
?(
??[id_cont_b]
?)? ON [PRIMARY]
GO
WITH NOCHECK:
?指定表中的數據是否用新添加的或重新啟用的 FOREIGN KEY 或 CHECK 約束進行驗證。如果沒有指定,對于新約束,假定為 WITH CHECK,對于重新啟用的約束,假定為 WITH NOCHECK。
我個人理解nocheck是針對已存在的數據而言的,也就是說我現在新增加或重新啟用了一個約束,那么要不要對數據庫中已存在的數據使用此
約束進行檢查。nockeck就是不檢查。
?
WITH CHECK | WITH NOCHECK
?? 指定表中的數據是否用新添加的或重新啟用的 FOREIGN KEY 或 CHECK 約束進行驗證。如果沒有指定,對于新約束,假定為 WITH CHECK,對于重新啟用的約束,假定為 WITH NOCHECK。
??? 還有CLUSTERED 是什么意思?是聚集索引的意思.
??? CLUSTERED | NONCLUSTERED
??? 指定為 PRIMARY KEY 或 UNIQUE 約束創建聚集或非聚集索引。PRIMARY KEY 約束默認為 CLUSTERED;UNIQUE 約束默認為 NONCLUSTERED。
??? 如果表中已存在聚集約束或索引,那么在 ALTER TABLE 中就不能指定 CLUSTERED。如果表中已存在聚集約束或索引,PRIMARY KEY 約束默認為 NONCLUSTERED。
總結
以上是生活随笔為你收集整理的SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Samba将Linux集成到Window
- 下一篇: 深入分析Flex [Bindable]