定義:規則時單獨的SQLServer對象,可以關聯到一個或幾個表中的一列或幾列。它可以使用多種方式來完成對數據值的校驗,可以使用函數返回驗證信息,也可以使用關鍵字BETWEEN,LIKE和IN完成對輸入數據的檢查。
規則的作用和CHECK約束的功能部分相同,在向表的某列 插入或更新數據時,用它來限制輸入的新值的取值范圍。
規則和CHECK約束的不同點:
CHECK約束是用CREATE Table語句在創建表時指定的,而規則需要作為單獨的數據庫對象來實現。
在一列上只能用一個規則,但可以使用多個CHECK約束。
規則可以應用於多個列,還可以應用於用戶自定義的數據類型,而CHECK約束只能應用於它定義的列。
語法:
CREATE RULE rule_name
AS
condition_expression
例如:
create rule rule_score as @value between 0 and 100 --@value為變量 功能是位於0到100之間 sp_bindrule rule_score,'NewSS.StuAge' --綁定到表的列上
創建規則后則立即在規則下面生成這一規則。
規則綁定到列上,需要用到系統存儲過程sp_bindrule
打開列中NewSS.StuAge的屬性且年齡輸入超過100會報錯
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------------------------------------------------------------------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
解除和刪除規則
刪除規則 drop rule rule_score
但是刪除之前應該先解綁規則
規則綁定在一個列上 sp_unbindrule 'NewSS.Age'
但是如果規則綁定多個列上的話,也是依依解綁再刪除