首页 > 解决方案 > SQL 序列从个位数跳到 1000 再到 2000。如何让它回到原来的序列?

问题描述

在此处输入图像描述

这是我用来插入和生成票证 id 的存储过程。

CREATE PROCEDURE [dbo].[uspInsertServiceEvent]
@ClientID int,
@EventDate datetime,
@Phone nchar(10),
@Contact nvarchar(30),
@NewTicketID int OUTPUT
AS
 --*********************************************************************
--** Add a service event
--*********************************************************************
SET NOCOUNT ON
DECLARE @ErrCode int

INSERT INTO [dbo].[ServiceEvents] ([ClientID],[EventDate],[Phone],[Contact])
VALUES (@ClientID, @EventDate, @Phone, @Contact)

SELECT @ErrCode = @@ERROR, @NewTicketID = SCOPE_IDENTITY()
 SET NOCOUNT OFF

我不知道发生了什么,它只是突然改变了顺序。任何帮助将不胜感激。

标签: sqlvisual-studio

解决方案


要更正表格,请尝试此操作。

首先备份,验证备份是否有效,这应该重新设置表

DELETE A
FROM [dbo].[ServiceEvents] AS A
WHERE A.TicketID > 8

    DBCC CHECKIDENT ('[dbo].[ServiceEvents]', RESEED, 9)

文档

请注意,这将删除所有记录,大于票证 id 大于 8,如果需要备份它们


推荐阅读