sql server标识列连续自增长

发布时间:2024-05-19 05:30 发布:上海旅游网

问题描述:

大家都知道sql server的表示列是自动自增长的。比如说现在又是123,当删除2的信息后,自增长会接着是4,那有没有什么办法让它 按顺序1234这样的自增长,而且当删除中间的后,还是按照顺序来的,中间也没有空开的值的问题,,和解?

问题解答:

只想到一个笨办法唉

建立一个trigger
一旦有删除资料行就会自动重建标识列,这样就始终是连续的了

ALTER trigger [rebuild_id] on [dbo].[b]
after delete
as
begin
alter table b drop column id
alter table b add id int identity(1,1)
end
GO

表太大的话就别用了,呵呵

这个问题我以前关注过 目前好像不能达到这个效果。
我也不敢肯定 只是一直没找到解决方法(好像要在程序中做)。

如果在数据库真有解决方法的话,期待高手中...

我的想法也是用触发器。
但是楼主为什么想要连续增长呢?

如果有10万条记录,你删除序号为1的记录后,需要改动99999条记录...
每次删除都要有大量的改动,效率没得说。。。

楼上几个的也算是方法了,虽然现实中没什么必要这样做。

如果真的要按照你说的那样来做..恐怕就只有一个方法了...将所有数据 用一句话..插入另外一张新表...而且需要写一个触发器..每次删除的时候就触发该事件....只有这样了...

热点新闻