KB2950209 - 修正:當起始位移大於 SQL Server 中子字串函數的字串長度時,會發生存取違規

套用到
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 Service Pack 1 (SP1) 累積更新 1 (CU1) 和更新版本或 2014 SQL Server中使用 Substring (運算式、start、length) 函數。 當運算式的長度大於 8000,且 start 大於運算式的長度時,會發生存取違規。 此外,您收到下列錯誤:

注意

目前命令發生嚴重錯誤。 如果有結果,應丟棄。

解決方式

此問題已先在下列 SQL Server 累積更新中修正。
套用 Hotfix 之後,當 start 大於 value 運算式中的字元數時,會傳回零長度運算式。

SQL Server 2012 SP2 的累積更新 1 /zh-tw/help/2976982

2014 年 SQL Server 累積更新 2 /zh-tw/help/2967546

SQL Server 2012 SP1 的累積更新 10 /zh-tw/help/2954099

關於 SQL Server 的累積更新

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

      

狀態

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