如何在删除所有数据后重置 SQL 服务器中的自动增量

how to Reset AutoIncrement in SQL Server after all data Deleted

我在 sql 中得到了一个函数,它生成连续的字母数字序列 no.like (c000,c0001 .......) ,效果很好。但是当我删除 table 中的所有数据时,它从最后生成的编号开始。我希望它从 "c0000" 重置其值。

代码如下:-

create table Customers
(
dbID int identity not null primary key,
CustomerName varchar(100)
)

 create function CustomerNumber (@id int) 
  returns char(5) 
  as 
 begin 
 return 'C' + right('0000' + convert(varchar(10), @id), 4) 
  end

  alter table Customers add CustomerNumber as dbo.CustomerNumber(dbID)

提前致谢....

编辑 1 -

如何更新它以根据最后一个值递增。意味着如果最后一个条目没有。 c0053,我删除了这条记录,所以当添加下一个条目时,它的值应该是 "C0053" 而不是 "C0054".

谢谢

截断 TABLE

从 table 或 table 的指定分区中删除所有行,而不记录单个行删除。 TRUNCATE TABLE 类似于没有 WHERE 子句的 DELETE 语句;但是,TRUNCATE TABLE 更快并且使用更少的系统和事务日志资源。

截断 TABLE 客户

或删除您的内置函数。

我的建议是 删除 所有数据行,为什么不 截断 table。

如果您截断 table 它会自动将您的自动增量重置为 0

TRUNCATE TABLE your_table_name;

此示例将截断 table 并删除 table 中的所有记录。并休息你的自动增量。

SQL TRUNCATE TABLE命令用于删除现有table

中的完整数据

试试这个方法。可以帮到你。

Truncate Table命令是重置身份的好方法,但还有其他命令也可以在删除记录后重置身份。

DBCC CHECKIDENT (TableName, RESEED, 0)

删除后您可以使用此命令将身份重置为 0。