FIX: Duplicate sequence value is generated when you run sp_sequence_get_range in parallel with NEXT VALUE FOR function

A következőkre vonatkozik: SQL Server 2012 EnterpriseSQL Server 2012 DeveloperSQL Server 2012 Standard

Symptoms


Assume that you have defined sequence objects in Microsoft SQL Server 2012 or SQL Server 2014. When you execute sp_sequence_get_range system stored procedures and NEXT VALUE FOR function in parallel on the same sequence object (for example, in different concurrent connections or in multithreaded applications), duplicate sequence value is generated.

Cause


This issue occurs because of a race condition for sp_sequence_get_range system stored procedures and NEXT VALUE FOR function when they are executed in the same sequence object in parallel. Both of them read and write to the current value of the sequence generator. However, there is a lack of correct synchronization mechanism between them.

Resolution


Service pack information

To resolve this issue, obtain Service Pack 1 for SQL Server 2014.

For more information about SQL Server 2014 Service Pack 1 (SP1), see bugs that are fixed in SQL Server 2014 Service Pack 1 .

This issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 6 for SQL Server 2014

Cumulative Update 4 for SQL Server 2012 SP2

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.