ローリングカウンターを容易にするために、このような既存のテーブルを使用する必要があります: -
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