利用觸發器生成編號

2021-04-01 11:40:39 字數 1585 閱讀 9041

原貼:http://***munity.csdn.***/expert/topic/4294/4294910.xml?temp=.3575403

有一表(id,product_id,product_name),其中id是自動編號,當向這錶新增資料時候,product_id自動新增資料,格式是"wpbh"&max(id)+1,這樣的觸發器怎麼寫?(注意:product_id欄位的資料是要求通過觸發器新增的,由新增資料前最大的id+1 組成。)

方式一:

-測試環境

--建表

create table  testt  (id int identity(1,1),product_id varchar(10) ,product_name varchar(20))

--建觸發器

create trigger t_testt on testt

for insert

asupdate testt

set product_id='wpbh'+convert(varchar,id)

where id=(select id from inserted)

--插入資料

insert into testt select null,'a'

insert into testt select null,'b'

insert into testt select null,'c'

--檢視結果 select * from testt

--結果:

id          product_id product_name        

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

1           wpbh1      a

2           wpbh2      b

3           wpbh3      c

方式二:

--如果樓住實現當前product_id 的id 是當前id+1 就這樣寫觸發器

create trigger t_testt on testt

for insert

asupdate testt

set product_id='wpbh'+convert(varchar,id+1)

where id=(select id from inserted)

--測試語句

insert into testt select null,'a'

insert into testt select null,'b'

insert into testt select null,'c'

--檢視結果 select * from testt

id          product_id product_name        

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

1           wpbh2      a

2           wpbh3      b

3           wpbh4      c

--刪除測試環境

drop table testt

觸發器維護已經用編號 未用編號

table1為初始化資料,table2為已用票據 在table2上寫觸發器,table2每insert,update,or 批量delete時,實時體現tabel1的 已用票號 已用票數 結餘票號 結餘票數 的值.示例 示例資料 create table table1 序號 int,類別 varch...

觸發器 trigger 日期 流水 編號

create table tb colid int identity,status int,id nvarchar 14 gocreate trigger test on tb for insert,update asbegin if update status begin declare stat...

觸發器學習(實現自動編號)

前段時間需要用觸發器做個實現資料插入表時自動編號的功能,於是再學習下觸發器,硬體備份共享於此,以供討論,以免遺忘。總結常用基本點如下 1 觸發器有兩種型別 資料定義語言觸發器 ddl觸發器 和資料操縱語言觸發器 dml觸發器 ddl觸發器 在使用者對資料庫執行資料定義 create alter dr...