打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何重置 SQL Server 标识(SQL Server ID)

删除 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

相关阅读

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
重置SqlServer表的自增列,让自增列重新开始记数
SQL的自增列重置的方法
sql identity 列的操作方法
SQL Server解惑——标识列的限制和跳号现象
mysql自增id的重置
SQL核心语句
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服