KB3021757 - 修正:與 NEXT VALUE FOR 函數平行執行 sp_sequence_get_range 時會產生重複的序列值

套用到
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

假設您已在 Microsoft SQL Server 2012 或 SQL Server 2014 中定義序列物件。 當您在相同的序列物件上並行執行sp_sequence_get_range系統預存程序和 NEXT VALUE FOR 函數時 (例如,在不同的並行連線或多執行緒應用程式中,) 會產生重複的序列值。

原因

發生此問題的原因是當sp_sequence_get_range系統預存程序和 NEXT VALUE FOR 函數在相同的序列物件中並行執行時出現競爭條件。 兩者都讀取和寫入序列產生器的目前值。 然而,它們之間缺乏正確的同步機制。

解決方式

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 /zh-tw/help/3031047

SQL Server 2012 SP2 的累積更新 4 /zh-tw/help/3007556

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。