发布网友 发布时间:2022-04-09 17:32
共3个回答
懂视网 时间:2022-04-09 21:53
在数据库表中,如果指定了主键为“标识”,并且打开了自增开关,当删除表中末尾某些数据再添加新数据时,主键标识就会不连续,这是因为数据库内部并未完全释放删除数据的内存,为了使编号连续,需要专门写相关的存储过程。
一、需要将表中主键标识的“自动增加”功能关闭;一般设置主键为INT类型。
二、编写存储过程
CREATE TRIGGER InsertTrigger ON Products INSTEAD OF INSERT AS BEGIN SET NOCOUNT ON DECLARE @I INT SET @I =0 SELECT * INTO # FROM inserted SELECT @I=MAX(ProductID) FROM Products @I = @I+1 UPDATE # SET ProductID= @I insert Products SELECT * FROM # END
其中:“inserted”是新插入数据的临时表,该表中的数据还未交付到数据库表中;
“#”:当前添加内容的数据表记录。
数据库中标识主键因删除数据不连续的问题
标签:rom 设置 div update 添加内容 数据 products sql 插入数据
热心网友 时间:2022-04-09 19:01
估计是你程序出错了,没有保存上,比如:执行insert了,但是没有提交,(别的原因,你得分析自己的代码,进行跟踪)热心网友 时间:2022-04-09 20:19
中间数据被删除了吧 你看时间 也有间隔 估计是被删掉了追问没有删除数据,时间是穿过来的数据的时间戳,是数据的一部分追答额.你试试 order by id 排序看看 是否还是这样.