KB3197883-修正:當您在異動複寫中發佈 UDF 至 SQL Server 2016 分銷商時,快照代理程式失敗

徵狀

假設您有一個設定,Microsoft SQL Server 2016 的作用是 [發佈伺服器],而 SQL Server 2014 或 SQL server 2012 作為 Publisher 使用。 在此設定中,如果您在 SQL Server 2012 或 SQL Server 2014 Publisher 上使用使用者定義函數(UDF)作為文章來建立快照或事務性或合併發佈,則快照代理程式會在腳本 UDF 中失敗,而且您會收到類似以下的錯誤訊息:

UserDefinedFunction "schema. functionname" 的腳本失敗

[快照代理作業] 記錄中出現下列錯誤訊息:

<DateTime> [5%] 複製代理程式遇到例外情況<DateTime> 來源:未知<DateTime> 例外類型: FailedOperationException<datetime> 異常訊息: UserDefinedFunction ' schema functionname 的腳本失敗 <DateTime> 訊息代碼:不適用

原因

發生這個問題的原因是快照代理程式使用 SMO Miscrosft。用於腳本文章的 SqlServer. dll。 SQL server 2016 IsNativelyCompiled 為記憶體中函數/存儲程式的 IsNativelyCompiled 新增一個 SMO 屬性。 這個屬性不會出現在版本早于 SQL Server 2016 的 SQL Server 中。 當您在分銷商處針對 SQL Server 2016 執行快照代理程式時,它會使用 SQL server 2016 的Microsoft. mscorlib.dll ,但它嘗試 IsNativelyCompiled 針對 sql SERVER 2012 或 2014 Publisher 檢查 Smo 屬性 IsNativelyCompiled,但由於上述錯誤而失敗。

解決方案

此問題已在 SQL Server 的下列累積更新中修正: Sql server 2016 的累積更新 2 SP1sql server 2016 的累加更新 4

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新: SQL Server 2016 的最新累計更新

因應措施

若要解決此問題,請在訂閱者上手動建立使用者定義函數(UDF)。

狀態

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

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×