sql 服务器中整数的下一个序列跳跃问题

Next sequence jumping issue in sql server for interger

将数据插入 table 时出现奇怪的错误。

CREATE TABLE [dbo].[Requests](
    [RequestID] [int] IDENTITY(1,1) NOT NULL,
    [LRequestID] [nvarchar](max) NULL,
)

并且我有一个 sp,它会 return 最后插入的值到这个 table。

    CREATE PROCEDURE [dbo].[GetSequenceValue]   
    @name as nvarchar(100)  
AS
BEGIN   
    SET NOCOUNT ON;

    IF @name=N'Request' SELECT NEXT VALUE FOR [dbo].[RequestNumber] AS [Value] 
END

现在我正在使用这个 sp 获取最后插入的记录并将这个值放入 temptable 以访问这个值。令人惊讶的是它正在跳跃价值。

我是按照下面的方式做的。

   CREATE TABLE #tmpTableRequests
    (
        OutputValue VARCHAR(100)
    )
    INSERT INTO #tmpTableRequests (OutputValue)   
    declare @requestidjumpissue int
    EXEC GetSequenceValue'request'
    select @RequestIDForanothertable= OutputValue FROM #tmpTableRequests
        print @RequestIDForanothertable

但是这里是跳跃值意味着当我插入临时值时实际插入的值为 10 table 显示为 12。

请指出我做错了什么。

下面是这个案例的解决方案。

序列生成器提供了另一种创建标识列的方法。如果我想获得最后插入的列,我们可以这样做,而且速度非常快。感谢 sql 2008R2。 创建过程 [dbo].[GetSequenceValue]
@name 为 nvarchar(100)
作为 开始
设置无计数;

IF @name=N'Request' SELECT NEXT VALUE FOR [dbo].[RequestNumber] AS [Value] 

结束