社区
MS-SQL Server
帖子详情
identity乱编号?
fb
2000-01-24 08:22:00
我曾设计过几个表,关键字段名为trans_id,用以记录流水号,字段类型为INT(indentity,1,1),希望能自动编号,开始时工作很好,使用一段时间后,就会出现问题:
如已经自动编到1234号(无1230号,可能该条记录被用户删除),下一条记录却不会被编为1235号,而是1230号。
为什么?
...全文
241
7
打赏
收藏
identity乱编号?
我曾设计过几个表,关键字段名为trans_id,用以记录流水号,字段类型为INT(indentity,1,1),希望能自动编号,开始时工作很好,使用一段时间后,就会出现问题: 如已经自动编到1234号(无1230号,可能该条记录被用户删除),下一条记录却不会被编为1235号,而是1230号。 为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csdn2000
2000-03-09
打赏
举报
回复
SQL中的identity属性是为了保持标识的唯一性而不是顺序性
july
2000-01-31
打赏
举报
回复
很对不起,最近出现的问题,未能给你回信,希望见谅。
关于indentity的编号,我是在实际使用中发现的,我还没有见过啥书上提过此问题
july
2000-01-26
打赏
举报
回复
使用Indentity属性的表,必须是只增加不删除的表否则它的编号不仅不连贯并且会严重跳号,最好的方法是自己编程实现本功能!!
Michael
2000-01-24
打赏
举报
回复
indentity列是最后一列的编号开始的,如自动编号到1234时,即使此记录删除后下一条记录的编号是1235,此类列是不会回收已删除的编号。
zdg
2000-01-24
打赏
举报
回复
identity肯定是找一个最小的可用编号, 有两种方法解决这个问题:
1) 不用identity, 自己计算最大的再加1就是下一个编号.
2) 删除纪录的时候不用Delete, 而是给纪录增加一个删除标志字段并设置为删除. 因为不是实际的删除操作, 所以, 号码也会是连续的...
祝你好运...
Michael
2000-01-24
打赏
举报
回复
依然是这个问题,事实上SQL Server中的indentity列每发生一次Insert语句,Indentity就要消耗一个编号,不知所说的新增记录的编号未顺序递增,是不是由此产生?
若要真正的顺序号,最好自己编写一序号产生器来完成。
fb
2000-01-24
打赏
举报
回复
Michael的回答确实如此,我手工试验过,indentity只会递增,即使将前面的记录删除,
但是,我有两个系统都发生过新增的记录的编号未顺序递增?问题依然存在,征求高见。
linux大纲资料.txt
linux
银行秒杀系统 第十三服创比赛项目.zip
银行秒杀系统 第十三服创比赛项目
单页登录源码 login登录页源码 html源码.zip
单页登录源码 login登录页源码 html源码
理性力学 陈至达.pdf
理性力学 陈至达.pdf
JAVA在线考试管理系统(源代码+论文+开题报告+外文翻译+英文文献+答辩PPT).zip
JAVA在线考试管理系统(源代码+论文+开题报告+外文翻译+英文文献+答辩PPT)
MS-SQL Server
34,588
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章