建立一個表,根據Description的不同,各自對應的ID起點不同,
需求:
1、管理員ID從1000開始自增,自增量為1
2、系主任ID從2000開始自增,自增量為1
3、普通教師ID從3000開始自增,自增量為1
建立表語句如下:
create table C( ID int, Description varchar(50));
接下來為這個表建立觸發器,如下所示:
create trigger tr_syiton C for insertas declare @r1 int,@c1 int,@n1 int, @r2 int,@c2 int,@n2 int, @r3 int,@c3 int,@n3 int --處理管理員編號 select @n1 = inserted.ID from inserted; select @c1 = count(ID) from C where Description='管理員'; if(@c1=1) set @r1= 1000; else begin select @r1 = max(ID) from C where Description='管理員'; set @r1= @r1+1; end --處理系主任編號 select @n2 = inserted.ID from inserted; select @c2 = count(ID) from C where Description='系主任'; if(@c2=1) set @r2= 2000; else begin select @r2 = max(ID) from C where Description='系主任'; set @r2= @r2+1; end --處理普通教師編號 select @n3 = inserted.ID from inserted; select @c3 = count(ID) from C where Description='普通教師'; if(@c3=1) set @r3= 3000; else begin select @r3 = max(ID) from C where Description='普通教師'; set @r3= @r3+1; end --執行插入操作 update C set ID=(case when Description='管理員' then @r1 when Description='系主任' then @r2 else @r3 end) where ID= (case when Description='管理員' then @n1 when Description='系主任' then @n2 else @n3 end); --測試用插入資料insert into C values(1,'管理員'); insert into C values(1,'系主任'); insert into C values(1,'普通教師'); --查詢資料 select * from C;
結果如所示:插入三行資料