徵狀

假設您有一個設定,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?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。