/*--示例說明
下面的示例演示了如何把規則繫結到列和使用者定義的資料型別
並且演示了修改繫結於列和使用者定義的資料型別的規則時,這兩者之間的差異。
--*/
--定義資料型別
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,...