【问题标题】:Identity column value in SQL ServerSQL Server 中的标识列值
【发布时间】:2013-11-08 03:58:12
【问题描述】:

我在 SQL Server 表中有一个 Identity 列。

Identity列达到值100,然后如果我在表中插入一条新记录,它将是101..但是在我的表中它跳转到10001,我不知道为什么会这样?

请帮忙

【问题讨论】:

  • 编辑您的问题以显示相关表格的CREATE TABLE... 代码。在 SQL Server Management Studio 中右键单击表,然后选择“Script Table As”和“CREATE to”,然后选择“New Query Window”。
  • 您使用的是哪个 VERSION 的 SQL Server? 2005 年? 2008 年? 2008 R2? 2012 年?
  • 您在该表上是否有任何回滚事务?

标签: sql-server


【解决方案1】:

当批量插入完成并回滚时会发生这种情况。假设你的列定义为IDENTITY(1,1),试试这个代码

-- Returns current Identity Value
DBCC CHECKIDENT ('YourTable', NORESEED);

这将返回一条消息

检查身份信息:当前身份值'xxx',当前 列值“xxx”。 DBCC 执行完成。如果 DBCC 打印错误 消息,请联系您的系统管理员。

现在运行以下查询

-- Resets the current Identity value to maximum value
DBCC CHECKIDENT ('YourTable', RESEED, 100);

下一个插入必须从 101 开始

【讨论】:

  • 我没有在表格上进行任何批量插入。我在表中插入425条记录,在表中插入其他记录后,它在标识列中插入10385..
  • 身份证号码不能无故失控。查看对此问题的回复stackoverflow.com/questions/12074540/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 2021-08-03
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
相关资源
最近更新 更多