KB4046918-修正:當 SQL CLR 函數透過 SQL Server 2016 和2017中的類比通話來呼叫 Transact-sql 語句時,執行失敗

徵狀

請試想下列案例:

  • 您在 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 2016 Service Pack 2

關於 SQL Server 2017 組建

每個新組建的 SQL Server 2017 包含先前組建中的所有修復程式和安全性修正程式。 我們建議您安裝 SQL Server 2017 的最新組建

Service pack 是累加的。 每個新的 service pack 都包含舊版 service pack 中的所有修正程式,以及任何新的修正程式。 我們建議您將最新的 service pack 和該 service pack 的最新累計更新套用。 在安裝最新的 service pack 之前,您不需要安裝舊版 service pack。 使用下列文章中的表格1,尋找最新 service pack 和最新累計更新的詳細資訊。

如何判斷 SQL Server 及其元件的版本、版本與更新層級

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 術語

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×