SQLServer2012ではSEQUENCE
が導入されました オブジェクト。これにより、どのテーブルにも関連付けられていない連続した数値を生成できます。
それらの作成は簡単です:
CREATE SEQUENCE Schema.SequenceName
AS int
INCREMENT BY 1 ;
挿入前の使用例:
DECLARE @NextID int ;
SET @NextID = NEXT VALUE FOR Schema.SequenceName;
-- Some work happens
INSERT Schema.Orders (OrderID, Name, Qty)
VALUES (@NextID, 'Rim', 2) ;
シーケンスの使用方法の詳細については、私のブログを参照してください:
http://sqljunkieshare.com/2011/12/11/sequences-in-sql-server-2012-implementingmanaging-performance/