sp_check_for_sync_trigger (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Menentukan apakah pemicu yang ditentukan pengguna atau prosedur tersimpan sedang dipanggil dalam konteks pemicu replikasi yang digunakan untuk segera memperbarui langganan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi atau di Pelanggan pada database langganan.

Konvensi sintaks transact-SQL

Sintaks

sp_check_for_sync_trigger [ @tabid = ] 'tabid'   
    [ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]  
    [ , [ @fonpublisher = ] fonpublisher ]  

Argumen

[@tabid = ] 'tabid'
Adalah ID objek tabel yang sedang diperiksa untuk segera memperbarui pemicu. tabid int tanpa default.

[@trigger_op = ] OUTPUT 'trigger_output_parameters'
Menentukan apakah parameter output adalah mengembalikan jenis pemicu yang dipanggilnya. trigger_output_parameters adalah char(10) dan dapat menjadi salah satu nilai ini.

Nilai Deskripsi
Ins Pemicu INSERT
Upd PERBARUI pemicu
Del Hapus pemicu
NULL (default)

[ @fonpublisher = ] fonpublisher Menentukan lokasi tempat prosedur tersimpan dijalankan. fonpublisher adalah bit, dengan nilai default 0. Jika 0, eksekusi ada di Pelanggan, dan jika 1, eksekusinya ada di Penerbit.

Mengembalikan Nilai Kode

0 menunjukkan bahwa prosedur tersimpan tidak dipanggil dalam konteks pemicu pembaruan segera. 1 menunjukkan bahwa pemicu dipanggil dalam konteks pemicu yang segera diperbarui dan merupakan jenis pemicu yang dikembalikan dalam @trigger_op.

Keterangan

sp_check_for_sync_trigger digunakan dalam replikasi rekam jepret dan replikasi transaksional.

sp_check_for_sync_trigger digunakan untuk berkoordinasi antara replikasi dan pemicu yang ditentukan pengguna. Prosedur tersimpan ini menentukan apakah sedang dipanggil dalam konteks pemicu replikasi. Misalnya, Anda dapat memanggil prosedur sp_check_for_sync_trigger dalam isi pemicu yang ditentukan pengguna. Jika sp_check_for_sync_trigger mengembalikan 0, pemicu yang ditentukan pengguna akan terus diproses. Jika sp_check_for_sync_trigger mengembalikan 1, pemicu yang ditentukan pengguna akan keluar. Ini memastikan bahwa pemicu yang ditentukan pengguna tidak diaktifkan saat pemicu replikasi memperbarui tabel.

Contoh

J. Menambahkan kode ke pemicu pada tabel Pelanggan

Contoh berikut menunjukkan kode yang dapat digunakan dalam pemicu pada tabel Pelanggan.

DECLARE @retcode int, @trigger_op char(10), @table_id int  
SELECT @table_id = object_id('tablename')  
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT  
IF @retcode = 1  
RETURN  

B. Menambahkan kode ke pemicu pada tabel Publisher

Kode juga dapat ditambahkan ke pemicu pada tabel di Publisher; kodenya mirip, tetapi panggilan ke sp_check_for_sync_trigger menyertakan parameter tambahan.

DECLARE @retcode int, @trigger_op char(10), @table_id int, @fonpublisher int  
SELECT @table_id = object_id('tablename')  
SELECT @fonpublisher = 1  
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT, @fonpublisher  
IF @retcode = 1  
RETURN  

Izin

sp_check_for_sync_trigger prosedur tersimpan dapat dijalankan oleh pengguna mana pun dengan izin SELECT dalam tampilan sistem sys.objects.

Lihat Juga

Langganan yang Dapat Diperbarui untuk Replikasi Transaksional