Sql-Server
CHECK 和 CONSTRAINT CHECK 有什麼區別?
以下範例之間有什麼區別嗎?
ProjNum int CONSTRAINT nn_ProjNum NOT NULL CONSTRAINT C_ProjNum CHECK (ProjNum >= 10)
和
ProjNum int NOT NULL CHECK (ProjNum >= 10)
謝謝。
這兩個語句在 SQL Server 中沒有區別。每個結果都帶有一個檢查約束的 NOT NULL 列(不是約束)。唯一的區別是第二個創建了一個系統命名的檢查約束,比如’CK__t__ProjNum__4AB81AF0’。
兩者都是一樣的。
據我了解,
CONSTRAINT CHECK
可以在添加新列時定義。ALTER TABLE dbo.DocExc ADD ColumnD int NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (ColumnD > 10 AND ColumnD < 50); GO
使用者也可以提供自己的約束名稱。
但是,如果我們必須檢查現有列,那麼
ALTER TABLE dbo.DocExc ADD CHECK (ExistsColumn > 10 AND ExistsColumn < 50); GO
系統將在此處提供約束名稱。