我有一個需要生成一個序列號作爲主鍵(在舊系統)生成一個序列號
我想知道,如果以下解決方案中的競爭條件從併發遭受。
CREATE TABLE SequenceGenerator
(
Sequence INT
)
INSERT INTO SequenceGenerator SELECT 0
這裏是每當我需要一個序列號
CREATE PROCEDURE GetNextSequence
AS
SET NOCOUNT ON
DECLARE @NextSequence INT
UPDATE SequenceGenerator SET
@NextSequence = Sequence,
Sequence = Sequence + 1
RETURN @NextSequence + 1
感謝
什麼版本的SQL Server? 2012有序列,以前的版本有'IDENTITY'列。如果你解釋爲什麼你想爲自己的代碼編寫代碼會有幫助嗎? – Pondlife
[在Sql Server中創建序列]的可能重複(http://stackoverflow.com/questions/1834733/creating-sequence-in-sql-server) –
以下是2012年的操作方法:http://stackoverflow.com/a/39774566/3347858 –