如何在SQL Server中重置自增长列的起始值

67

我希望能够在开发中使用一个漂亮的模板。如何在SQL Server中重置增量标识的起始值?

3个回答

134
DBCC CHECKIDENT('TableName', RESEED, 0)

36

在这里需要提醒大家:

DBCC CHECKIDENT (MyTable, RESEED, 0)

如果您没有截断表格,并且标识列是主键,那么在达到预先存在的标识时,您将会收到一个错误。

例如,表中已经有标识(3,4,5)。然后,您将标识列重置为1。在插入标识2之后,下一个插入将尝试使用标识3,这将失败。


我不知道此处所提到的截断(truncating)是指什么,但如果有疑问可以执行 select max(customerid) from customers 命令,以查看现有值中最高的是多少。 - Simon_Weaver

17

将标识设置为100:

DBCC CHECKIDENT (MyTable, RESEED, 100)

8
顺便提一下,这意味着下一个标识是101,因此将“0”用于重置下一个插入的标识为“1”。 - Kieren Johnstone
@Kieren Johnstone - 是的,它将继续从100开始编号,就好像记录100刚被添加,下一个是101。 - Keith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接