建立 Check 條件約束
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
您可以使用 SQL Server Management Studio 或 Transact-SQL,在資料表中建立檢查條件約束,以指定 SQL Server 中一或多個資料行可接受的資料值。 如需新增資料行條件約束的詳細資訊,請參閱 ALTER TABLE column_constraint。
如需詳細資訊,請參閱 Unique Constraints and Check Constraints。
備註
若要查詢現有的檢查條件約束,請使用 sys.check_constraints 系統目錄檢視。
權限
必須具備資料表的 ALTER
權限。
使用 SQL Server Management Studio
在 [物件總管] 中,展開您想要加入檢查條件約束的資料表、以滑鼠右鍵按一下 [條件約束],然後選取 [新增條件約束]。
在 [檢查條件約束] 對話方塊中,選取 [運算式] 欄位,然後選取省略符號 (...)。
在 [檢查條件約束運算式] 對話方塊中,輸入檢查條件約束的 SQL 運算式。 例如,若要將
SellEndDate
資料表之Product
資料行中的項目限制為大於或等於SellStartDate
資料行中日期的值或是NULL
值,請輸入:SellEndDate >= SellStartDate
或者,若要要求
zip
資料行中的項目必須是 5 位數,請輸入:zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
注意
請務必將任何非數字條件約束值放在單引號 (
'
) 中。選取 [確定]。
在 [識別] 類別目錄中,您可以變更檢查條件約束的名稱,並且加入條件約束的描述 (擴充屬性)。
在 [資料表設計工具] 類別目錄中,您可以設定強制執行條件約束的時間。
動作 從下列選項中選取 Yes
針對建立條件約束之前存在的資料測試條件約束 檢查建立或重新啟用時的現有資料 每次在此資料表上進行複寫作業時都強制執行條件約束 強制複寫 每次插入或更新此資料表的資料列時都強制執行條件約束 於 INSERT 及 UPDATE 時強制套用 選取 [關閉]。
使用 Transact-SQL
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。
首先,建立條件約束。
ALTER TABLE dbo.DocExc ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK ( ColumnD > 10 AND ColumnD < 50 ); GO
若要測試條件約束,請先新增可讓檢查條件約束通過的值。
INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
接下來,嘗試新增可讓檢查條件約束失敗的值。
INSERT INTO dbo.DocExc (ColumnD) VALUES (55);