現象
Microsoft SQL Server 2012 または SQL Server 2014 でシーケンスオブジェクトを定義していることを前提としています。 同じシーケンスオブジェクト (たとえば、複数の同時接続またはマルチスレッドアプリケーション) で、システムストアドプロシージャとNEXT VALUEを並列でsp_sequence_get_range実行すると、重複シーケンス値が生成されます。
原因
この問題が発生するのは、システムストアドプロシージャと次の値をsp_sequence_get_rangeの競合状態が、同じシーケンスオブジェクトで並列処理されているときに発生します。 どちらも、シーケンスジェネレーターの現在の値を読み書きします。 ただし、それらの間に正しい同期メカニズムがないことがあります。
解決方法
Service pack の情報
この問題を解決するには、SQL Server 2014 の Service Pack 1 を入手してください。
SQL Server 2014 Service Pack 1 (SP1) の詳細については、「 Sql server 2014 Service pack 1 で修正されたバグ」を参照してください。この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム6 /en-us/help/3031047
SQL Server 2012 SP2 の累積更新プログラム4 /en-us/help/3007556
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。