為使用者定義的資料型別繫結規則示例 sql

2022-09-01 14:51:10 字數 2014 閱讀 7462

/*--示例說明

下面的示例演示了如何把規則繫結到列和使用者定義的資料型別

並且演示了修改繫結於列和使用者定義的資料型別的規則時,這兩者之間的差異。

--*/

--定義資料型別

exec sp_addtype 'ut_age','int','null'

go--為ut_age定義規則

create rule r_ut_age

as@age between 0 and 200

go--將規則繫結到使用者定義的資料型別

exec sp_bindrule 'r_ut_age','ut_age'

go--使用定義的資料型別

create table tb(

name nvarchar(20),

age_u ut_age,

age int)

go--直接將規則繫結到列

exec sp_bindrule 'r_ut_age','tb.age'

go--插入資料

insert tb values('aa',10,0)

insert tb values('bb',10,210)

/*--這條記錄違反了規則,所以會收到錯誤資訊

伺服器: 訊息 513,級別 16,狀態 1,行 1

列的插入或更新與先前的 create rule 語句所強制的規則衝突。該語句已終止。衝突發生於資料庫 'tempdb',表 'tb',列 'age'。

--*/

go--建立乙個新規則

create rule r_ut_age1

as@age between 20 and 300

go--將新規則繫結到列

exec sp_bindrule 'r_ut_age1','tb.age'

insert tb values('bb',10,210)

--繫結新規則到列時,新規則在插入資料時立即生效

go--使用futureonly選項將新規則繫結到定義的資料型別

exec sp_bindrule 'r_ut_age1','ut_age',futureonly

insert tb values('cc',10,210)

insert tb values('dd',210,210)

select * from tb

/*--結果

繫結新規則到定義的資料型別時,如果指定 futureonly 引數,則已經表中已經定義的列不使用新規則

所以第二條插入語句收到如何錯誤資訊:

伺服器: 訊息 513,級別 16,狀態 1,行 1

列的插入或更新與先前的 create rule 語句所強制的規則衝突。該語句已終止。衝突發生於資料庫 'tempdb',表 'tb',列 'age_u'。

表中的現有資料為:

name                 age_u       age        

-------------------- ----------- -----------

aa                   10          0

bb                   10          210

cc                   10          210

--*/

go--刪除定義的規則

drop rule r_ut_age,r_ut_age1

/*--由於規則已經繫結到使用者定義的資料型別和列,所以收到如下錯誤資訊

伺服器: 訊息 3716,級別 16,狀態 1,行 3

無法除去 規則 'r_ut_age',因為它繫結到了乙個或多個 列 上。

伺服器: 訊息 3716,級別 16,狀態 1,行 3

無法除去 規則 'r_ut_age1',因為它繫結到了乙個或多個 列 上。

--*/

go--按順序刪除就可以了

drop table tb

exec sp_droptype 'ut_age'

drop rule r_ut_age,r_ut_age1

定義交貨型別的裝運點確定規則

在外向交貨中,發貨需要指定裝運點 shipping point sap erp系統給了兩種確認方式 可以是根據特定工廠的組合確認裝運點 參見 維護工廠的裝運點確認 也可以是特定庫存地點的組合確認 參見 維護庫存地點的裝運點確認 至於是選擇工廠或庫存地點級,則需要根據交貨型別 delivery typ...

C 為資料型別定義別名的方式

標籤 c 定義別名 define typedef by 小威威 在c 中,為資料型別定義別名有兩種方式 第一種就是用巨集定義 define 第二種方法就是用typedef。雖然這兩種方法都能為資料型別定義別名,但是我還是比較推薦使用typedef,尤其是在定義多個變數的時候。現在我們來看一段簡單的 ...

SQL Server使用者自定義資料型別

使用者自定義資料型別 基於系統資料型別,由資料庫管理員生成。利用系統儲存過程定義使用者自定義資料型別 sp addtype typename 新資料型別名,phystype 系統資料型別名 nulltype null type owner owner name 系統資料型別名,除了 big,int,...