我注意到,当sql sever(2008express)插入自动递增的标识规范时,它是随机向前跳的。
例如,我的一个列“hitstat_id”将依次插入15、16、17、18,然后突然,它将决定跳转到1012、1013、1014….然后是9120、9121等。
其实并不重要,只要它们是独一无二的(它们是什么),但它为什么要这样做呢?它也在不止一张桌子上做…
奇怪的是,这只是在过去一周左右的时间里完成的,但是应用程序已经开发了几个月了!
eta:我在asp.net vb中工作
这是插页(在本例中):
sql = "INSERT INTO [HitStats] ([PageName], [Date_and_Time], [User_ID]) values ('Home',
'" + TheDateTime + "', '" + Session("User_ID") + "')"
Dim dbcmd As SqlCommand = New SqlCommand(sql, dbconn)
dbcmd.ExecuteNonQuery()
dbcmd.Dispose()
请不要继续关于sql注入blah blah,它不会发生!
最佳答案
如果您使用的是应用程序和事务,那么当回滚事务时,您将丢失生成的自动递增数字。
如果你做一些插入并回滚它们。
查看更多here
此外,如果删除数据,则不会再次获得生成的数字,除非执行种子重新设定。
见here