另类的Identity乱编号问题。

flyhorse 2000-02-01 03:46:00
在一个使用MS SQL6。5的系统中,数据库中带有Identity列的表经常出现重号的现象,怀疑是因为服务器当机等情况造成的,但即使当机也不应该出现这种情况。希望有经验的大师们帮忙解释解释,有什么好的解决办法么?实在不行我就不用它了。
...全文
253 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyhorse 2000-03-10
  • 打赏
  • 举报
回复
感谢大家等这么久。
我想解释一下分数的分配。有意见可以保留。呵呵。
radish的10分 在某个高度上给出了原则性的建议,并且很热心。
929 的5分 设想的状况和给出的不符,但也给出了解决方法。
Micheal 好象你没有这种乱编号的体验。
july 简单、太简单,呵呵,有点不负责。
abelu的10分 感谢你的处理后事的经验和办法
july的5分 感谢你对在下的关心。
flyhorse 在这里当然没有他的事
dongxun的20分 简明扼要地解决了问题。谢谢!


dongxun 2000-02-29
  • 打赏
  • 举报
回复
推荐使用UNIQUEIDENTIFIER类型,并与DEFAULT=NEWID()共同使用,就可以避免这样的事情发生了。
flyhorse 2000-02-18
  • 打赏
  • 举报
回复
谢谢大家!我还想看看还有没有其他的答案了?
july 2000-02-17
  • 打赏
  • 举报
回复
你在那里,sleep???
abeliu 2000-02-16
  • 打赏
  • 举报
回复
IDENTITY类型是自动增量类型。它一般为表中的字段实现自动增长。但在增加过程中,SERVER不保证增加的值是连续的,有可能在增量过程中出现空号。一般情况下,也将该字段作为主键使用.
插入新记录时,如果出现重号,系统一般返回错误(SQLCODE非0),这时可以执行以下命令修复该id值:dbcc checkident(表名).
july 2000-02-13
  • 打赏
  • 举报
回复
Don't use it,and programe it with yourself
Michael 2000-02-02
  • 打赏
  • 举报
回复
可能是有数据倒入倒出行为。只要将此列设为主键,应该没问题。
929 2000-02-02
  • 打赏
  • 举报
回复
IDENTITY类型是自动增量类型。它一般为表中的字段实现自动增长。但在增加过程中,SERVER不保证增加的值是连续的,有可能在增量过程中出现空号。另外,SERVER对于向表中灌入数据的操作,比如说用BCP时,不对传入的数据自动增量值的重复与否进行校验,因此可能在这种情况下出现重号的情况。对于一个表来说可用IDENTITY类型来做表的字段,但如果出错,可用另外一个表存储主键值,然后自己通过程序对这个值递增,实现IDENTITY的功能。
radish 2000-02-01
  • 打赏
  • 举报
回复
SQL,sybase 的Identity有很多BUG,最好不用

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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