身份增量在SQLServer数据库中跳转

身份增量在SQLServer数据库中跳转

在我的桌子上Fee在SQLServer 2012中的“ReceiptNo”列中,数据库标识增量突然开始跳到1000,而不是1,具体取决于以下两点。

  1. 如果它是1205446,它是跳转到1206306,如果它是1206321,它跳到1207306,如果它是1207314,它跳到1208306。我想让你们注意的是,当跳跃发生时,最后三位数保持不变,即306,如下图所示。

  2. 此问题发生在我重新启动计算机时。


阿晨1998
浏览 521回答 4
4回答

饮歌长啸

此问题发生在重新启动SQLServer之后。解决办法是:跑SQLServer配置管理器.选择SQLServer服务.右击SQLServer并选择特性.在打开的窗户下面启动参数、类型-T272然后点击加,然后按应用按钮并重新启动。

慕后森

我知道我的回答可能会迟到。但是,通过在SQLServer 2012中添加启动存储过程,我已经以另一种方式解决了问题。在主数据库中创建以下存储过程。USE [master]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[ResetTableNameIdentityAfterRestart]ASBEGINbegin TRAN     declare @id int = 0     SELECT @id =  MAX(id) FROM [DatabaseName].dbo.[TableName]     --print @id     DBCC CHECKIDENT ('[DatabaseName].dbo.[TableName]', reseed, @id)CommitEND然后使用以下语法将其添加到启动中。EXEC sp_procoption 'ResetOrderIdentityAfterRestart', 'startup', 'on';如果你没有几张桌子,这是个好主意。但是,如果您必须对许多表执行此方法,则此方法仍然有效,但不是一个好主意。
打开App,查看更多内容
随时随地看视频慕课网APP