我有一个需要生成一个序列号作为主键(在旧系统)生成一个序列号
我想知道,如果以下解决方案中的竞争条件从并发遭受。
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 –