Sql Server清空表并重置主键序号有两种方法
TRUNCATE Table [Table name]
DELETE FROM [Table name]
dbcc checkident([Table name],reseed,0)
以Sql Server2014为例,比如当前有2条记录(序列为2),执行成功后输出结果:
正在检查标识信息: 当前标识值为“2”。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
如果表里有数据,只重置表主键序列,那么再插入数据会报错:
消息 2627,级别 14,状态 1,第 4 行
违反了 PRIMARY KEY 约束“PK_TS”。不能在对象“dbo.TS”中插入重复键。重复键值为 (1)。
语句已终止。
因为序列被重置为0,下次插入新记录时Id自增为1,但是目前数据库已经存在Id为1的记录,所以就报错了。所以一般先删除表数据后再执行重置主键序列。