【发布时间】:2014-08-13 14:41:32
【问题描述】:
有没有办法将标识列重新设置为原始值?目前我有这个IDENTITY(1,1) 作为我的表定义。我试过用这种方法重新播种:
DBCC CHECKIDENT (Table1, reseed, 1)
但我注意到,SQL 实际上将其重新设置为当前种子 + 新种子值,因此当我插入新行时,它会从 2 而不是 1 开始自动递增计数。我也尝试过制作新的重新种子值0,但之后我插入的所有行最终都为 1,并且该列不再自动递增。
顺便说一句,如果有帮助,我需要此列将其自动递增计数重新设置为零,因为我需要每个月重新开始计数。我在为此设置插入后触发,但重新播种给我带来了一些麻烦。
【问题讨论】:
-
你为什么要这样做?
-
在重新启动 IDENTITY 列的值之前,您是否删除/截断
Table1? -
我需要这样做,因为我需要跟踪传入的工作,我们的工作管理系统将每个工作分为两部分:1. 四位数 MMYY(例如 0714 = 2014 年 7 月)和2. 5 位数字 00001(IDENTITY 列)。并且每次更改月份时,5位数字都必须重新计算。我不会删除或截断任何列。
-
不要这样做。你有哪个 SQL Server 版本?
SELECT @@VERSION -
我相信是 Microsoft SQL Server 2012
标签: sql sql-server auto-increment identity-column