sql server有关自增主键问题。

最近碰到一个很坑爹的事情。

我数据库有张表,它又有一主键,有自增的属性(+1)。现在主键已经到了1543,其中不可避免有断层(就是主键ID 为100 或 112被删除)。

问题    情况一:我现在添加数据时主键ID 重新从1开始自增(这是我现在出现的问题,主键ID重新从1开始自增)。

    情况二:我现在添加数据时主键ID 是那些缺失的ID(弃)。

阿晨1998
浏览 708回答 9
9回答

素胚勾勒不出你

情况一:从1开始自增长只能通过Truncate Table清空所有数据。 情况二:使用 Set Identity_Insert 表名 Off 语句关闭 Id 列写入保护,手动写入断层Id,然后再 Set Identity_Insert 表名 On

波斯汪

1. 要从1开始自增,需要用TRUNCATE TABLE清空表中所有数据。 2.  a) 删除时不要直接删除,通过增加一个字段标识出已删除的记录。 b) 或者在代码中手动计算ID

陪伴而非守候

可以 确定没有用TRUNCATE TABLE删除,只是用了delete删除了几条数据而已。 补充   情况一:我现在添加数据时主键ID 重新从1开始自增(这个是我现在每添加一条数据它是重新从1开始自增的,现在已经添加到了5,即添加了5条数据了)     情况二:我现在添加数据时主键ID 是那些缺失的ID(即我现在添加信息是替补了我删除的ID) 可能以上描述有问题导致 dudu 您老看花了眼,在此深感愧疚。

DIEA

@烟雨中闲置: 看三楼飞扬的尘埃的回答

神不在的星期二

可以替换成Uniqueidentifier类型的字段 对应C#的类型是Guid  数据库中可以采用newId()来替代自动增长。

aluckdog

最好的方法是删除的数据不要从表中移除,而是将其状态至为已删除。当然,试情况而定,如果是完关紧要的数据,可以直接删除。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server