使用默认隔离级别:READ COMMITTED,是否可以保证以下过程为每个会话返回不同的数字?基本上,一个会话是否可以与另一个会话同时执行此过程,并返回相同的值。
CREATE PROCEDURE GetNextVersion(@id uniqueidentifier)
AS
BEGIN
UPDATE MySequenceTable
SET mySequenceField = mySequenceField + 1
OUTPUT INSERTED.mySequenceField
where IdField = @id
END
GO
注意:我们不能在 SQL Server 2012 中使用新的序列对象,这也不是标识列可以工作的场景。