码迷,mamicode.com
首页 > 数据库 > 详细

数据库中标识主键因删除数据不连续的问题

时间:2017-03-19 17:23:10      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:rom   设置   div   update   添加内容   数据   products   sql   插入数据   

在数据库表中,如果指定了主键为“标识”,并且打开了自增开关,当删除表中末尾某些数据再添加新数据时,主键标识就会不连续,这是因为数据库内部并未完全释放删除数据的内存,为了使编号连续,需要专门写相关的存储过程。

一、需要将表中主键标识的“自动增加”功能关闭;一般设置主键为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   插入数据   

原文地址:http://www.cnblogs.com/yuanpan666/p/6580768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!