第十一章

可重複使用的資料庫物件(默認值和規則)

Default

•在insert語法中,沒有提供該列的值時,預設給予一個值

•建立

–create default default_name as constant_expression

•給予

–sp_bindefault default_name, object_name

•解除

–sp_unbindefault object_name

•刪除

–drop default default_name

•規則

•一個資料表只可以有一個Defaults物件

•如果該列已經設定了default的值,就不能套用Defaults物件

•對之前的資料並不會產生影響

Rule

•規則是一個資料庫物件,防止新增和更新不符合規則的條件

–就像一個check constraint,它可以用來執行資料完整性

•建立

–create rule rule_name as condition_expression

•給予

–sp_bindrule rule_name, object_name

•解除

–sp_unbindrule object_name

•刪除

–drop rule rule_name

•規則

•一個資料表只可以有一個Rules物件

•二個Rules物件的話,第二個Rules物件會覆蓋掉第一個Rules物件

•Rules物件可以包含一個以上的Rules

•對之前的資料不會產生影響

使用者定義的數據類型(User-Defined Datatype)

•Defaults和Rules可以bound到user-defined

•使用使用者定義的數據,當Default或Rule有做修改的情況下,只是套用使用者定義的數據就不需要個別修改

•給予

–sp_bindefault def_state, type_ch_state

•解除

–sp_unbindefault type_ch_state

•一旦一個使用者定義的數據綁定到它的default和/或rule,任何使用用戶定義的數據類型的列自動繼承default和/或rule

•如果在column中有建立一個user-defined

•但在bound一個user-defined物件給你

•會優先使用bound的user-defined物件

•sp_helptext {default_name | rule_name}

–查詢建立時的default或rule訊息

•sp_rename old_object_name, new_object_name

–更改名稱

數據完整性的方法

•預設值和規則的修改 (Defaults and Rules Review)

•是Transact-SQL擴展

•不需要具體指定一個資料表,並且是可重複使用的

•可使用用戶定義的數據類型

•不能創建資料表時創建的,因此需要額外的步驟(創建和綁定)

•不能執行多重檢查

•不能有相關的消息

•可以在sp_helptext查詢存儲過程

•限制修改(Constraints Review)

•是ANSI

•可以使用在建立資料表,並不能重覆使用

•不能伴隨著自行定義的資料類型

•創建表時創建(或修改),並且不需要額外的步驟

•可以方便地實現多列檢查

•可以有關聯的訊息

•可以查看sp_helpconstraint

•選擇方法

•使用限制

–實施具體被定義資料表的完整性

–堅持以ANSI標準

–進一步限制列的網域

–輕鬆地定義行的兩列之間的檢查

•使用數據庫對象

–實施,可以適用於多個列,資料表或資料庫的完整性

–用戶定義的數據類型綁定規則或默認