Gejala
Asumsikan bahwa Anda memiliki setup tempat Microsoft SQL Server 2016 bertindak sebagai distributor dan SQL Server 2014 atau SQL Server 2012 bertindak sebagai Publisher. Dalam penyiapan ini, jika Anda membuat snapshot, atau publikasi transaksional atau gabungan di SQL Server 2012 atau SQL Server 2014 Publisher dengan fungsi user-defined (UDF) sebagai artikel, maka agen snapshot gagal saat scripting UDF, dan Anda menerima pesan kesalahan yang menyerupai yang berikut ini:
Skrip gagal untuk UserDefinedFunction ' schema. functionname '
Pesan kesalahan berikut ini terlihat dari riwayat pekerjaan agen snapshot:
<DateTime> [5%] agen replikasi telah menemukan pengecualian<DateTime> Source: Unknown<DateTime> Exception Type: Microsoft. SqlServer. Management. SMO. FailedOperationException<Tanggalwaktu> pesan pengecualian: skrip gagal untuk UserDefinedFunction ' schema. functionname ' <kode pesan> DateTime: tidak berlaku
Penyebab
Masalah ini terjadi karena agen snapshot menggunakan SMO miscroSFT. SqlServer. SMO. dll ke artikel skrip. SQL Server 2016 menambahkan properti SMO baru isnativelycompiled untuk fungsi dalam memori/prosedur tersimpan. Properti ini tidak disajikan di SQL Server yang versinya lebih lama dari SQL Server 2016. Saat Anda menjalankan agen snapshot pada distributor untuk SQL Server 2016, menggunakan Microsoft. SqlServer. SMO. dll dari SQL Server 2016, tapi mencoba untuk memeriksa properti SMO isnativelycompiled terhadap Publisher SQL Server 2012 atau 2014 dan gagal dengan kesalahan di atas.
Pemecahan Masalah
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut ini untuk SQL Server: Pembaruan kumulatif 2 untuk SQL server 2016 SP1pembaruan kumulatif 4 untuk SQL Server 2016
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server: Pembaruan kumulatif terbaru untuk SQL Server 2016
Penyelesaian Masalah
Untuk mengatasi masalah ini, buat fungsi yang ditentukan pengguna (UDF) secara manual di pelanggan.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologiyang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.