如何重置 SQL Server 标识(SQL Server ID)

作者:vkvi 来源:千一网络(原创) 日期:2009-12-4

删除 SQL Server 表记录后,想在新插入记录时,标识从 1 开始编号。

dbcc checkident('表名', RESEED, 0)

注意第三个参数是 0:由于这个表曾经有个记录,那么新插入第一条记录时,其标识就是 0 的下一个数,即 1;如果这个表从来没有插入过记录,那么新插入第一条记录时,其标识就是 0。

现在有这么一种捣蛋情况:

表中有不连续的记录,其标识值分别是 2、4,运行dbcc checkident('表名', RESEED, 0) 后:

  • 插入一条记录,成功,标识值为 1。
  • 再插入一条记录,很可能失败,为什么很可能失败呢,因为标识就是用来唯一标识一条记录的,那么您肯定将其设置为主键了,标识 2 的记录已经存在了,再插入就失败了。
  • 再插入一条记录,成功,标识值为 3。
  • 再插入一条记录,很可能失败……
  • 再插入一条记录,成功,标识为 5。

更多

关于这个函数的更多信息,请在 SQL Server 帮助中搜索 dbcc checkident。

TRUNCATE TABLE

您可能会说 TRUNCATE TABLE 也会将标识重置,为什么不用它呢?

  • TRUNCATE TABLE 会删除表中的所有记录,可能与您的需求不符。
  • TRUNCATE TABLE 对应的表主键如果是其他表的外键,那么它无法执行。

更多信息请参见:TRUNCATE TABLE 和 DELETE

相关阅读

你前面那位网友看了:Android 中访问网页数据/内容

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:评论
  • 2 楼:评论
标题:必填
内容:
赞助商们
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他