SQL Server中根據某個欄位,ID欄位自動增長的實現
建立一個表,根據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_syit
on C for insert
as
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;
結果如下圖所示:插入三行資料
相關文章
- 二維陣列根據某個欄位排序陣列排序
- list集合根據某欄位分組
- 根據欄位查表名
- js物件陣列(JSON) 根據某個共同欄位 分組物件陣列JSON
- sql根據多個欄位查詢重複記錄SQL
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- SQL 如何在時間序列中根據欄位變化分組SQL
- js陣列操作——物件陣列根據某個相同的欄位分組JS陣列物件
- golang將切片或陣列根據某個欄位進行分組Golang陣列
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- MySQL中修改一個資料庫下包含有某個相同欄位的所有表的欄位長度MySql資料庫
- 基於MySQL自增ID欄位增量掃描研究MySql
- SpringJpa @query 中根據傳入引數(欄位)排序Spring排序
- MyBatis實現MySQL表欄位及結構的自動增刪MyBatisMySql
- SqlServer根據特定欄位分組後,對需要欄位進行分組拼接SQLServer
- SQL Server中獲取資料庫名、表名、欄位名和欄位註釋的SQL語句SQLServer資料庫
- 如何自動填充SQL語句中的公共欄位SQL
- 強制轉換檢視某個欄位為某個型別的sql型別SQL
- DB2巧用欄位自動增長主鍵的方法DFDB2
- jQuery根據表格欄位升序和降序詳解jQuery
- 二維陣列根據欄位進行排序陣列排序
- 【mybatis-plus】主鍵id生成、欄位自動填充MyBatis
- jackson根據屬性名動態序列化物件欄位物件
- MySQL 更新一個表裡的欄位等於另一個表某欄位的值MySql
- mongodb如何改_id欄位?MongoDB
- SQL Server 查詢表註釋和欄位SQLServer
- mysql基礎 依據一個欄位查詢另外一個欄位存在不同的值MySql
- SQLServer中如何刪除欄位的自增標識SQLServer
- 逆向工程通過某個欄位排序排序
- ElasticSearch 設定某個欄位不分詞Elasticsearch分詞
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- sql 統計多個欄位的和(如果欄位中含有 null 的處理)SQLNull
- sql語句修改欄位型別和增加欄位SQL型別
- 獲得某個類的所有宣告的欄位
- mybatisplus欄位值自動填充MyBatis
- IDEA外掛實現根據欄位註釋生成getter/setter方法Javadoc註釋IdeaJava
- MySQL8 根據某屬性查詢欄位排名由自定義變數到rank()的變動MySql變數
- 在 Laravel 中自動維護 slug 欄位Laravel
- Dynamics CRM使用計算欄位自動計算兩個時間欄位的天數差