Symptome
Angenommen, Sie haben Sequenzobjekte in Microsoft SQL Server 2012 oder SQL Server 2014 definiert. Wenn Sie sp_sequence_get_range gespeicherten Systemprozeduren und die Funktion NEXT VALUE FOR parallel für dasselbe Sequenzobjekt ausführen (z. B. in verschiedenen gleichzeitigen Verbindungen oder in Multithreadanwendungen), wird ein doppelter Sequenzwert generiert.
Ursache
Dieses Problem tritt aufgrund einer Racebedingung für sp_sequence_get_range gespeicherten Systemprozeduren und der Funktion NEXT VALUE FOR auf, wenn sie im selben Sequenzobjekt parallel ausgeführt werden. Beide lesen und schreiben auf den aktuellen Wert des Sequenzgenerators. Es fehlt jedoch ein korrekter Synchronisierungsmechanismus zwischen ihnen.
Lösung
Informationen zum Service Pack
Installieren Sie Service Pack 1 für SQL Server 2014, um dieses Problem zu beheben.
Weitere Informationen zu SQL Server 2014 Service Pack 1 (SP1) finden Sie unter In SQL Server 2014 Service Pack 1 behobene Fehler.
Dieses Problem wurde erstmals 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
Informationen zu kumulativen Updates für SQL Server
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.