sp_check_for_sync_trigger (Transact-SQL)
Determina si se va a llamar a un procedimiento almacenado o un desencadenador definido por el usuario en el contexto de un desencadenador de replicación que se utiliza para suscripciones de actualización inmediata. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones o en el suscriptor de la base de datos de suscripciones.
sp_check_for_sync_trigger se utiliza en la replicación de instantáneas y transaccional.
sp_check_for_sync_trigger se utiliza para coordinar los desencadenadores de replicación y los definidos por el usuario. Este procedimiento almacenado determina si se le llama en el contexto de un desencadenador de replicación. Por ejemplo, puede llamar al procedimiento almacenado sp_check_for_sync_trigger en el cuerpo de un desencadenador definido por el usuario. Si sp_check_for_sync_trigger devuelve 0, el desencadenador definido por el usuario sigue procesándose. Si sp_check_for_sync_trigger devuelve 1, el desencadenador definido por el usuario se cierra. Así se garantiza que el desencadenador definido por el usuario no se activa cuando el desencadenador de replicación actualiza la tabla.
En el ejemplo siguiente se muestra código que se podría utilizar en un desencadenador de una tabla del suscriptor.
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
El código también se puede agregar a un desencadenador de una tabla en el publicador; el código es parecido, pero la llamada a sp_check_for_sync_trigger incluye un parámetro adicional.
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
Cualquier usuario con permisos SELECT en la vista del sistema sys.objects puede ejecutar el procedimiento almacenado sp_check_for_sync_trigger.
