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;
結果如下圖所示:插入三行資料
相關文章
- SQL Server 自增欄位重置SQLServer
- 二維陣列根據某個欄位排序陣列排序
- list集合根據某欄位分組
- PHP二維陣列根據某個欄位排序PHP陣列排序
- sql去除某個欄位中的某個字串 replaceSQL字串
- 根據欄位查表名
- SQL Server 自增欄位歸零等問題SQLServer
- sql根據多個欄位查詢重複記錄SQL
- SQL Server 2005裡設定自增欄位SQLServer
- js物件陣列(JSON) 根據某個共同欄位 分組物件陣列JSON
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- SQL 如何在時間序列中根據欄位變化分組SQL
- 觸發器—一個表插入資料時其他欄位同步自增長欄位觸發器
- golang將切片或陣列根據某個欄位進行分組Golang陣列
- js陣列操作——物件陣列根據某個相同的欄位分組JS陣列物件
- Gridview繫結資料庫的欄位,根據條件欄位顏色改變View資料庫
- [PY3]——根據某個特定的欄位來分組迭代訪問一個欄位或序列?/ itertools.groupby( )函式函式
- 根據欄位名查詢所有表
- MySQL中修改一個資料庫下包含有某個相同欄位的所有表的欄位長度MySql資料庫
- 細說SQL SERVER中欄位型別SQLServer型別
- js記一個根據欄位排序物件函式JS排序物件函式
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- MyBatis實現MySQL表欄位及結構的自動增刪MyBatisMySql
- oracle中如何指定表欄位自增Oracle
- SqlServer根據特定欄位分組後,對需要欄位進行分組拼接SQLServer
- 在SQL Server中修改欄位型別和欄位名稱的儲存過程SQLServer型別儲存過程
- SQL Server複製的表中如何修改欄位SQLServer
- sql server中對日期欄位值的比較SQLServer
- SpringJpa @query 中根據傳入引數(欄位)排序Spring排序
- DB2巧用欄位自動增長主鍵的方法DFDB2
- 查詢某個欄位的不同值
- 二維陣列根據欄位進行排序陣列排序
- jQuery根據表格欄位升序和降序詳解jQuery
- 根據上一行填充本行的空白欄位,SQL處理方式SQL
- 如何自動填充SQL語句中的公共欄位SQL
- 巧用欄位對映實現指定欄位的搜尋
- SQL Server中獲取資料庫名、表名、欄位名和欄位註釋的SQL語句SQLServer資料庫