请问 MS SQL 自动增量 问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:26:41
比如说我的数据表有三个记录,自动增量NO:1,2,3
现在我删除掉第三条记录,再添加一条记录的话,自动增量号是4,现在就是1,2,4
有什么办法让他按顺序增量吗?还让它是1,2,3 ...
真的没办法吗?我见过重新排列的增量号的项目,删除再添加的时候,还是逐一增量的啊。

有一种情况是,比方说数据库有10000条测试数据,现在全部删除后,仍然从10001开始计算,你可以在删除记录后,先把该列变成普通列(非种子递增),然后再加上种子(请确保在操作完成前,独占该表。)。

没办法,这个只能是如此的。这是为了提高效率才会如此设计的,因为空间是不存在任何问题的。

你可以把子段设置成长整型,保证不管是什么时候字段都不会出现溢出

没办法
但是如果你现在是在测试的话
可以先把数据库的自动增长列先删掉然后保存 然后再给他价格自动增长列.
重新insert就会重新排。

这个我有办法
当然得自己写函数了
语句我现不记得了
挺麻烦的
你要想要的HI我给你找吧
--------------
想起来了这样写的
select min(id+1) from tabb where id+1 not in (select id from tabb)
但效率不高

一个思路:
可以建立一张基础对比表,只有一个字段id,用于存储连续的数字,这个数字可以穷举,可以一下就初始个极大值,比如1到1000W,也可以做个触发器,你的业务表保存一次,这个表的id就加1,这样可以永远保证对比表的最大id比业务表的最大id大。
然后就可以查询业务表中不存在对比表的id,并用最大id做条件限定范围,如果存在就取其中的最小id作为保存值,不存在就把最大值加1作为保存值。

没办法