文章目錄
準備知識
檢查約束在表中定義一個對輸入的數據按照設置的邏輯進行檢查的標識符.
一旦表中某列設置了檢查約束,則在向表中添加數據時,會使用這個約束對輸入的數據按照設置的邏輯進行檢查。
定義檢查約束
使用SSMS工具定義檢查約束
- 展開“數據庫”,然後展開相應的數據庫,再展開數據庫中的“表”,右擊需要定義檢查約束的數據表,選擇“設計”。
- 進入表設計器界面,點擊需要定義檢查約束的列,選擇“Check約束”。
- 進入“Check約束”對話框,點擊“添加”,在“表達式”中輸入相關表達式(如果是選值,則是“ 列名=‘值’ Or 列名=‘值’ ”,如果是範圍,則是“ 列名 between 值 And 值 ”)。
- 在“(名稱)”中輸入檢查約束的名稱,點擊“關閉”。
- 點擊保存鍵,或者按Ctrl+F5鍵進行保存。展開數據表,展開“約束”,可以看到定義的檢查約束。
使用SQL方式定義檢查約束
方式一:在創建數據表的時候定義檢查約束
- 在SSMS工具欄中單擊“新建查詢”,打開“SQL編輯器”窗口
- 輸入創建SQL代碼
USE schoolDB --打開數據庫schoolDB
GO
IF EXISTS(SELECT * FROM sysobjects WHERE name='student')
DROP TABLE student --檢查student是否已經存在,如果存在,則刪除
GO
CREATE TABLE student --表名爲student
(
StuID int NOT NULL, --學生學號
StuName varchar(15) NOT NULL, --學生姓名
Sex char(2) CHECK(Sex='男' Or Sex='女') NULL, --性別
Major varchar(20) NULL, --所選專業
)
- 點擊“分析”按鈕,或按住Ctrl+F5,對SQL代碼進行語法分析,確保SQL語句語法正確。
- 點擊“執行”按鈕,或按住F5,執行SQL代碼。
- 查看數據表中的約束。
方式二:修改數據表定義檢查約束
- 在SSMS工具欄中單擊“新建查詢”,打開“SQL編輯器”窗口
- 輸入創建SQL代碼
USE schoolDB --打開數據庫schoolDB
GO
ALTER TABLE student
ADD CONSTRAINT CK_student_Sex CHECK(Sex='男' Or Sex='女') --對Sex列定義檢查約束
- 點擊“分析”按鈕,或按住Ctrl+F5,對SQL代碼進行語法分析,確保SQL語句語法正確。
- 點擊“執行”按鈕,或按住F5,執行SQL代碼。
- 查看數據表中的約束。
刪除檢查約束
使用SSMS工具刪除檢查約束
方式一:在對象資源管理器中刪除檢查約束
- 展開需要刪除檢查約束的數據表,然後再展開“約束”。
- 右擊需要刪除的檢查約束,選擇“刪除”。
- 在刪除對象界面,點擊“確定”,即可完成檢查約束刪除。
方式二:在表設計器中刪除檢查約束
-
右擊需要刪除檢查約束的數據表,選擇“設計”。
-
進入表設計器界面,點擊鼠標,選擇“Check約束”。
-
在“Check約束”對話框中選擇需要刪除的檢查約束,點擊“刪除”,完成檢查約束的刪除。
使用SQL方式刪除檢查約束
-
在SSMS工具欄中單擊“新建查詢”,打開“SQL編輯器”窗口
-
輸入創建SQL代碼
USE schoolDB --打開數據庫schoolDB
GO
ALTER TABLE student
DROP CONSTRAINT CK_student_Sex --刪除Sex列的檢查約束
- 點擊“分析”按鈕,或按住Ctrl+F5,對SQL代碼進行語法分析,確保SQL語句語法正確。
- 點擊“執行”按鈕,或按住F5,執行SQL代碼。
- 檢查約束已被刪除。