CourseID 是自动递增的。如果我有标识为 16、17 和 18 的行并将它们全部删除,则 19 是下一个生成的 ID。我想将它设置回 16,最后一行被删除。
问问题
1064 次
5 回答
2
当您删除记录时,身份种子不会被重置。检查本教程: http: //www.howtogeek.com/howto/database/reset-identity-column-value-in-sql-server/
DBCC CHECKIDENT (your_table_name, RESEED, 0)
另请注意这种相当奇怪的行为DBCC CHECKIDENT 将身份设置为 0
于 2013-07-30T20:48:36.577 回答
1
这不是身份字段的工作方式,实际上,在您的解决方案生效时重置身份字段通常不是一个好主意。
如果您在数据库的其他地方有任何其他表引用此表中的行(或审计等),则通过重置 CourseID,您可以在重新填充表时有效地将它们指向不同的课程。
如果您确实需要重置种子,可以使用以下命令执行此操作:
DBCC CHECKIDENT (Course_Table, RESEED, 0)
于 2013-07-30T20:57:10.513 回答
1
这不是 IDENTITY 字段的工作方式。您需要自己执行该逻辑或重置身份种子。
于 2013-07-30T20:48:39.293 回答
0
如果你回滚事务或删除它们,你到底为什么不希望它们被跳过。这是为了允许多次交易而设计的。尝试通过手动过程更改这一点将是一个非常糟糕的主意,并且会使您的数据完整性面临风险。他们跳过不是一件坏事是一件好事。
于 2013-07-30T20:56:14.367 回答
0
如果这是 SQL Server 数据库,并且您确实想清理表,则可以改用 TRUNCATE TABLE。这不仅会删除所有行,还会重置 IDENTITY 值。
于 2013-07-30T20:50:05.563 回答