Problembeschreibung
Angenommen, Sie haben Sequenzobjekte in Microsoft SQL Server 2012 oder SQL Server 2014 definiert. Wenn Sie sp_sequence_get_range gespeicherte Systemprozeduren und den nächsten Wert für Funktion parallel für dasselbe Sequenzobjekt (beispielsweise in unterschiedlichen gleichzeitigen Verbindungen oder in Multithread-Anwendungen) ausführen, wird doppelter Sequenzwert generiert.
Ursache
Dieses Problem tritt aufgrund einer Racebedingung für sp_sequence_get_range gespeicherten Systemprozeduren und des nächsten Werts für die Funktion auf, wenn Sie parallel in demselben Sequenzobjekt ausgeführt werden. Beide lesen und schreiben den aktuellen Wert des Sequenz-Generators. Es besteht jedoch ein Mangel an korrektem Synchronisierungsmechanismus zwischen Ihnen.
Fehlerbehebung
Service Pack-Informationen
Um dieses Problem zu beheben, besorgen Sie sich Service Pack 1 für SQL Server 2014.
Weitere Informationen zu SQL Server 2014 Service Pack 1 (SP1) finden Sie unter Fehler, die in SQL Server 2014 Service Pack 1 behoben wurden. Dieses Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 6 für SQL Server 2014 /en-us/help/3031047
Kumulatives Update 4 für SQL Server 2012 SP2 /en-us/help/3007556
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.