徵狀
假設您已在 Microsoft SQL Server 2012 或 SQL Server 2014 中定義了順序物件。 當您在同一個順序物件(例如,在不同的併發連接或多執行緒應用程式中)執行 sp_sequence_get_range 系統存儲程式及 下一個值 FOR 函數時,會產生重複的序列值。
原因
發生這個問題的原因是,並行在相同的序列物件中執行 sp_sequence_get_range 系統存儲程式和 NEXT 值 函數的競爭條件。 兩者都讀取並寫入定序器的目前值。 不過,它們之間缺少正確的同步處理機制。
解決方案
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 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。