create table t (id int,name varchar(10)) go create trigger tri_insert on t for insert as update t set id=(select count(1) from t) where id is null and name =(select name from inserted) go insert t(name ) values('jgj') insert t(name ) values('abc') insert t(name ) values('eef') select * from t /* id name ----------- ---------- 1 jgj 2 abc 3 eef */
序号 编号 名称
1 1
2 2
3 3
4 3.1
5 4
6 5
7 5.1
null 6
null 7
--------
弄成这样:
序号 编号 名称
1 1
2 2
3 3
4 3.1
5 4
6 5
7 5.1
8 6
9 7
也有可能插入的数据在中间,怎么弄?
go
create trigger tri_insert
on t
for insert
as
update t set id=(select count(1) from t) where id is null and name =(select name from inserted)
go
insert t(name ) values('jgj')
insert t(name ) values('abc')
insert t(name ) values('eef')
select * from t
/*
id name
----------- ----------
1 jgj
2 abc
3 eef
*/
1 a
null b
3 c