我需要使用这样的现有表格来促进滚动计数器:-
CREATE TABLE [dbo].[IdentityCounter](
[CounterName] [nvarchar](255) NOT NULL,
[StartId] [bigint] NOT NULL,
[EndId] [bigint] NOT NULL,
[CurrentId] [bigint] NOT NULL,
[CreatedTime] [datetime] NULL,
[ModifiedTime] [datetime] NULL,
[Description] [nvarchar](255) NULL
) ON [PRIMARY]
例如说我有以下内容: -
CounterName "ReceiptNumber"
StartId 1
EndId 99999
etc. etc.
对于特定的 CounterName 我希望能够调用存储过程或函数来: -
为我获取下一个值并将其保存回 CurrentId 并将 CurrentId 作为结果发回
如果下一个值等于 EndId + 1,那么我需要使下一个值等于 StartId 并将其保存回 CurrentId。还将 CurrentId 作为结果发回。
将有多个应用程序调用它,因此需要确保事情保持一致。
计数器不是钥匙,它只是需要传递给第三方服务的东西。
最好的方法是什么?
谢谢!ITG