Artikel Transaksional - Regenerasi untuk Mencerminkan Perubahan Skema

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Secara default, replikasi transaksional membuat semua perubahan data di Pelanggan melalui prosedur tersimpan yang dihasilkan oleh prosedur internal untuk setiap artikel tabel dalam publikasi. Tiga prosedur (masing-masing satu untuk sisipan, pembaruan, dan penghapusan) disalin ke Pelanggan dan dijalankan saat penyisipan, pembaruan, atau penghapusan direplikasi ke Pelanggan. Ketika perubahan skema dilakukan pada tabel pada Penerbit SQL Server, replikasi meregenerasi prosedur ini secara otomatis dengan memanggil kumpulan prosedur skrip internal yang sama sehingga prosedur baru cocok dengan skema baru (replikasi perubahan skema tidak didukung untuk Penerbit Oracle).

Dimungkinkan juga untuk menentukan prosedur kustom untuk menggantikan satu atau beberapa prosedur default. Prosedur kustom harus diubah jika perubahan skema akan memengaruhi prosedur. Misalnya, jika prosedur mereferensikan kolom yang dihilangkan dalam perubahan skema, referensi ke kolom harus dihapus dari prosedur. Ada dua cara untuk replikasi untuk menyebarluaskan prosedur kustom baru kepada Pelanggan:

  • Opsi pertama adalah menggunakan prosedur pembuatan skrip kustom untuk menggantikan default yang digunakan oleh replikasi:

    1. Saat menjalankan sp_addarticle (Transact-SQL), pastikan @schema_option bit 0x02 benar.

    2. Jalankan sp_register_custom_scripting (Transact-SQL) dan tentukan nilai 'insert', 'update', atau 'delete' untuk parameter @type dan nama prosedur pembuatan skrip kustom untuk parameter @value.

    Lain kali perubahan skema dilakukan, replikasi memanggil prosedur tersimpan ini untuk membuat skrip definisi untuk prosedur tersimpan kustom yang ditentukan pengguna baru, lalu menyebarluaskan prosedur ke setiap Pelanggan.

  • Opsi kedua adalah menggunakan skrip yang berisi definisi prosedur kustom baru:

    1. Saat menjalankan sp_addarticle (Transact-SQL), atur @schema_option bit 0x02 ke false sehingga replikasi tidak secara otomatis menghasilkan prosedur kustom di Pelanggan.

    2. Sebelum setiap perubahan skema, buat file skrip baru dan daftarkan skrip dengan replikasi dengan menjalankan sp_register_custom_scripting (Transact-SQL). Tentukan nilai 'custom_script' untuk parameter @type dan jalur ke skrip pada Publisher untuk parameter @value.

    Lain kali perubahan skema yang relevan dilakukan, skrip ini dijalankan pada setiap Pelanggan dalam transaksi yang sama dengan perintah DDL. Setelah perubahan skema dilakukan, skrip tidak terdaftar. Anda harus mendaftarkan ulang skrip agar eksekusinya dijalankan setelah perubahan skema berikutnya.

Lihat Juga

Tentukan Bagaimana Perubahan Disebarkan untuk Artikel Transaksional
Membuat Perubahan Skema pada Database Publikasi