Bagikan melalui


sp_check_for_sync_trigger (T-SQL)

Berlaku untuk: SQL Server Azure 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_op' OUTPUT ]
    [ , [ @fonpublisher = ] fonpublisher ]
[ ; ]

Argumen

[ @tabid = ] tabid

ID objek tabel yang sedang diperiksa untuk segera memperbarui pemicu. @tabid int, tanpa default.

[ @trigger_op = ] OUTPUT 'trigger_op'

Menentukan apakah parameter output adalah mengembalikan jenis pemicu yang dipanggilnya. @trigger_op adalah parameter OUTPUT dari jenis char(10), dan dapat menjadi salah satu nilai ini.

Nilai Deskripsi
Ins INSERT pelatuk
Upd UPDATE pelatuk
Del DELETE pelatuk
NULL (default)

[ @fonpublisher = ] fonpublisher

Menentukan lokasi tempat prosedur tersimpan dijalankan. @fonpublisher adalah bit, dengan default .0

  • Jika 0, eksekusi ada di Pelanggan.
  • Jika 1, eksekusi ada di Publisher.

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 untuk 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

Setiap pengguna dengan SELECT izin dalam tampilan sistem sys.objects dapat menjalankan sp_check_for_sync_trigger.