第7项中的SQL Server 2012列标识增量从6跳到1000+
这个问题在这里已经有了答案:
这完全正常。 微软在SQL Server 2012中添加了sequences
,最后,我可能会添加并更改生成身份密钥的方式。 看看这里的一些解释。
如果你想拥有旧的行为,你可以:
我知道我的回答可能会迟到。 但我已经通过在SQL Server 2012中添加启动存储过程以另一种方式解决了问题。
在主数据库中创建以下存储过程。
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ResetTableNameIdentityAfterRestart]
AS
BEGIN
begin TRAN
declare @id int = 0
SELECT @id = MAX(id) FROM [DatabaseName].dbo.[TableName]
--print @id
DBCC CHECKIDENT ('[DatabaseName].dbo.[TableName]', reseed, @id)
Commit
END
然后使用以下语法将其添加到启动。
EXEC sp_procoption 'ResetOrderIdentityAfterRestart', 'startup', 'on';
如果您的桌子很少,这是个好主意。 但如果你必须为许多表格做,这种方法仍然有效,但不是一个好主意。
遇到同样的问题,在SQL Server 2012中发现以下错误报告如果仍然相关,请参阅导致此问题的条件 - 此处也有一些解决方法(尽管未尝试)。 重置身份的故障转移或重新启动结果
链接地址: http://www.djcxy.com/p/94433.html上一篇: SQL Server 2012 column identity increment jumping from 6 to 1000+ on 7th entry