SQL Sever中主键Id列设置了Identity属性虽然删除了行,但是新行还是从上一个已删除Id号码+1,该怎么弄

阿水哥 2011-01-20 04:17:16
Id

//10000 此行虽然删除了

Id

10001 新行还是递增

怎么样使得 只要没有行 初始行 都是10000
或者 有2行了 第三行 不会是10005 10006这种 把它改成10002
...全文
416 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elaine00 2012-10-20
  • 打赏
  • 举报
回复
对于这个问题其实你只要在你想决定的字段那里右键点击属性,把数据规范改为否就行啦,接下来就是个性化的设置啦
wuyq11 2011-01-20
  • 打赏
  • 举报
回复
删除idenitity
通过max生成ID号
truncate table 表名 --可以重新置位identity属性的字段。
delete from 表名
dbcc checkident(表名,reseed,0) --重新置位identity属性的字段
lizhibin11 2011-01-20
  • 打赏
  • 举报
回复
假如表中最大主键值已经是10000,这时删除了主键为5000的那条记录,你是否还需要将5001-10000的主键全部减去1?你这个问题其实是没有必要的,保持原样就行了.
lwilson 2011-01-20
  • 打赏
  • 举报
回复
自己手工处理。
qldsrx 2011-01-20
  • 打赏
  • 举报
回复
单独加个列来编号,主键就用自增长,不然每次中间删除或者插入一行,主键要重新创建,很麻烦的。
yuandonghuia 2011-01-20
  • 打赏
  • 举报
回复
主键还用这个,自己做个自增的玩吧,这个比较安全
garfieldzf 2011-01-20
  • 打赏
  • 举报
回复
别用自增就可以了。
宝_爸 2011-01-20
  • 打赏
  • 举报
回复
其实目前这样还是比较安全的。

你自己实现的时候
小心并发!!!
孟子E章 2011-01-20
  • 打赏
  • 举报
回复
那就别用Identity 了
mjp1234airen4385 2011-01-20
  • 打赏
  • 举报
回复
除了自己写,没有别的办法了。
自己定义规则,自己写个过程,就行了。
zuxianghuang 2011-01-20
  • 打赏
  • 举报
回复
把标识列解锁
再自己写编号
lizhibin11 2011-01-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhaoxialx 的回复:]
引用 8 楼 lizhibin11 的回复:
假如表中最大主键值已经是10000,这时删除了主键为5000的那条记录,你是否还需要将5001-10000的主键全部减去1?你这个问题其实是没有必要的,保持原样就行了.

那按照你的意思,新添加怎么设置id号呢?最大值加一还是用Identity
[/Quote]
主键确定后,为安全起见,不要随意改变。
如果不想弄复杂,老老实实自增就行了——最大值加1
zhaoxialx 2011-01-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lizhibin11 的回复:]
假如表中最大主键值已经是10000,这时删除了主键为5000的那条记录,你是否还需要将5001-10000的主键全部减去1?你这个问题其实是没有必要的,保持原样就行了.
[/Quote]
那按照你的意思,新添加怎么设置id号呢?最大值加一还是用Identity

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧