徵狀
請試想下列案例:
-
您在 SQL Server 2016 和2017中有一個 SQL CLR 函數。
-
CLR 函數會透過模仿呼叫(例如呼叫 EXECUTE AS 語句)來調用 Transact-sql 語句。
在這種情況下,執行會失敗,而且您會收到下列錯誤訊息:
Msg 6522、Level 16、State 1、程式 PrcedureName、行 0 [成批啟動行 LineNumber]
執行使用者定義的常式或匯總「ProcedureName」期間發生 .net Framework 錯誤:
SqlClient:伺服器主體「LoginName」無法在目前的安全性內容下存取資料庫「DatabaseName」。
解決方案
此修正套裝程式含在 SQL Server 2017 的 累積更新 1 中。
SQL Server 2016 的 Service pack 資訊
此問題已在下列 SQL Server service pack 中修正:
關於 SQL Server 2017 組建
每個新組建的 SQL Server 2017 包含先前組建中的所有修復程式和安全性修正程式。 我們建議您安裝 SQL Server 2017 的最新組建。
關於 SQL Server 的服務套件:
Service pack 是累加的。 每個新的 service pack 都包含舊版 service pack 中的所有修正程式,以及任何新的修正程式。 我們建議您將最新的 service pack 和該 service pack 的最新累計更新套用。 在安裝最新的 service pack 之前,您不需要安裝舊版 service pack。 使用下列文章中的表格1,尋找最新 service pack 和最新累計更新的詳細資訊。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的 術語 。