SQL Server 设置自动增长列id,当删除id中行时后面数的往前移

比如有(id=1、2、3、4、5、6)当删除id=4时(id=1、2、3、4、5)
2024-12-19 00:37:22
推荐回答(3个)
回答1:

这个只能通过触发器来实现了。。
如果你要这么做 当初就不应该用自增列 呵呵
我给你个例子 用其他方式实现自增列的这种情况

这里介绍个用触发器生成自增列的方法
--环境
create table test_5
(
id int primary key not null,
value int
)
--保存最大序列值的表
create table Sequence
(
rn int
)
insert Sequence select 0
go
create trigger tr_test_5 on test_5
Instead of insert
as
begin
declare @n int
update Sequence
set rn=rn+@@rowcount,@n=rn
insert test_5
select @n+row_number()over(order by getdate()),value from inserted
end
go
insert test_5(value)
select 1 union select 2 union select 3
select * from test_5
/*
id value
----------- -----------
1 1
2 2
3 3*/

回答2:

自动增长列是不可能这样变的,自己定义列来实现吧

回答3:

不知道你这样做的目的是什么?