您可以在數據表中建立檢查條件約束,以使用 SQL Server Management Studio 或 Transact-SQL,指定 SQL Server 2014 中一或多個數據行可接受的數據值。
本主題內容
開始之前:
若要建立新的檢查條件約束:
開始之前
安全
權限
需要資料表的 ALTER 權限。
使用 SQL Server Management Studio
若要建立新的檢查約束
在 物件總管 中,展開您要新增檢查條件的資料表,右鍵點擊 約束 ,並選擇 新增檢查條件。
在 [ 檢查條件約束 ] 對話框中,按兩下 [ 表達式] 字段,然後按下省略號 (...)。
在 [檢查條件約束運算式] 對話方塊中,輸入檢查條件約束的 SQL 運算式。 例如,若要將數據表
Product欄中的項目限制為大於或等於SellStartDate欄中的日期或者是 NULL 值,請輸入:SellEndDate >= SellStartDate OR SellEndDate IS NULL或者,若要要求
zip欄中的項目為5位數,請輸入:zip LIKE '[0-9][0-9][0-9][0-9][0-9]'備註
請務必以單引號 (') 括住任何非數值條件約束值。
按一下 [確定]。
在 [識別] 類別目錄中,您可以變更檢查條件約束的名稱,並且加入條件約束的描述 (擴充屬性)。
在 [資料表設計工具] 類別目錄中,您可以設定強制執行條件約束的時間。
給: 在下列欄位中選取 [是]: 建立條件約束之前,對已存在的資料進行條件約束測試 檢查建立或啟用時的現有資料 每當此資料表進行複寫作業時,強制執行約束條件。 強制同步 每次插入或更新此資料表的資料列時都強制套用限制條件 於 INSERT 及 UPDATE 時強制套用 按下 關閉。
使用 Transact-SQL
若要建立新的檢查約束
在物件總管中,連線到資料庫引擎實例。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。
ALTER TABLE dbo.DocExc ADD ColumnD int NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (ColumnD > 10 AND ColumnD < 50); GO -- Adding values that will pass the check constraint INSERT INTO dbo.DocExc (ColumnD) VALUES (49); GO -- Adding values that will fail the check constraint INSERT INTO dbo.DocExc (ColumnD) VALUES (55); GO
如需詳細資訊,請參閱 ALTER TABLE (Transact-SQL)。