SQL,sybase 的Identity有很多BUG,最好不用
IDENTITY类型是自动增量类型。它一般为表中的字段实现自动增长。但在增加过程中,SERVER不保证增加的值是连续的,有可能在增量过程中出现空号。另外,SERVER对于向表中灌入数据的操作,比如说用BCP时,不对传入的数据自动增量值的重复与否进行校验,因此可能在这种情况下出现重号的情况。对于一个表来说可用IDENTITY类型来做表的字段,但如果出错,可用另外一个表存储主键值,然后自己通过程序对这个值递增,实现IDENTITY的功能。
可能是有数据倒入倒出行为。只要将此列设为主键,应该没问题。
Don't use it,and programe it with yourself
IDENTITY类型是自动增量类型。它一般为表中的字段实现自动增长。但在增加过程中,SERVER不保证增加的值是连续的,有可能在增量过程中出现空号。一般情况下,也将该字段作为主键使用.
插入新记录时,如果出现重号,系统一般返回错误(SQLCODE非0),这时可以执行以下命令修复该id值:dbcc checkident(表名).
你在那里,sleep???
谢谢大家!我还想看看还有没有其他的答案了?
推荐使用UNIQUEIDENTIFIER类型,并与DEFAULT=NEWID()共同使用,就可以避免这样的事情发生了。
感谢大家等这么久。
我想解释一下分数的分配。有意见可以保留。呵呵。
radish的10分 在某个高度上给出了原则性的建议,并且很热心。
929 的5分 设想的状况和给出的不符,但也给出了解决方法。
Micheal 好象你没有这种乱编号的体验。
july 简单、太简单,呵呵,有点不负责。
abelu的10分 感谢你的处理后事的经验和办法
july的5分 感谢你对在下的关心。
flyhorse 在这里当然没有他的事
dongxun的20分 简明扼要地解决了问题。谢谢!