症狀
假設您使用 Microsoft SQL Server 2014。 當您嘗試在原生編譯的預存程序中使用 datepart (weekday) 時,發生存取違規,連線會結束。 此外,您收到下列錯誤:
注意
目前命令發生嚴重錯誤。 如果有結果,應丟棄。
原因
發生此問題的原因是 SQL Server 2014 中的缺陷。
搭配 char 引數使用 datepart 會引進對 datetimeOffset 的隱含轉換。 原生預存程序不支援 datetimeoffset。
解決方式
套用 Hotfix 之後,SQL Server 將會進行變更以引進新的邏輯,以將 char 引數轉換為原生預存程序的 datetime2,以及一般預存程序和常數摺疊的 datetimeoffset。
此問題已先在下列 SQL Server 累積更新中修正。
SQL Server 2014 累積更新 1 /zh-tw/help/2931693
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
因應措施
若要解決此問題,請明確轉換為支援的日期/時間類型。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。