sp_check_for_sync_trigger (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance
Détermine si un déclencheur ou une procédure stockée définis par l'utilisateur sont appelés dans le contexte d'un déclencheur de réplication utilisé pour les abonnements avec mise à jour immédiate. Cette procédure stockée est exécutée sur le serveur de publication sur la base de données de publication ou sur l’Abonné sur la base de données d’abonnement.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_check_for_sync_trigger [ @tabid = ] 'tabid'
[ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
Arguments
[@tabid = ] 'tabid'
ID d'objet de la table dans laquelle les déclencheurs de mise à jour immédiate sont recherchés. tabid est int sans valeur par défaut.
[@trigger_op = ] SORTIE 'trigger_output_parameters'
Spécifie si le paramètre de sortie doit renvoyer le type du déclencheur à partir duquel il est appelé. trigger_output_parameters est char(10) et peut être l’une de ces valeurs.
Valeur | Description |
---|---|
Ins | Déclencheur INSERT. |
Upd | Déclencheur UPDATE. |
Suppr | Déclencheur DELETE. |
NULL (par défaut) |
[ @fonpublisher = ] fonpublisher
Spécifie l’emplacement où la procédure stockée est exécutée. fonpublisher est bit, avec une valeur par défaut de 0. Si la valeur est 0, l'exécution s'effectue sur l'Abonné et, si la valeur est 1, l'exécution s'effectue sur le serveur de publication.
Codet de retour
0 indique que la procédure stockée n'est pas appelée dans le contexte d'un déclencheur de mise à jour immédiate. 1 indique qu’il est appelé dans le contexte d’un déclencheur de mise à jour immédiate et est le type de déclencheur retourné dans @trigger_op.
Notes
sp_check_for_sync_trigger est utilisé dans la réplication d’instantanés et la réplication transactionnelle.
sp_check_for_sync_trigger est utilisé pour coordonner la réplication et les déclencheurs définis par l’utilisateur. Cette procédure stockée détermine si elle est appelée dans le contexte d'un déclencheur de réplication. Par exemple, vous pouvez appeler la procédure sp_check_for_sync_trigger dans le corps d’un déclencheur défini par l’utilisateur. Si sp_check_for_sync_trigger retourne 0, le déclencheur défini par l’utilisateur continue de traiter. Si sp_check_for_sync_trigger retourne 1, le déclencheur défini par l’utilisateur se ferme. Vous êtes ainsi assuré que le déclencheur défini par l'utilisateur ne s'active pas lorsque le déclencheur de réplication met à jour la table.
Exemples
R. Ajouter du code à un déclencheur sur une table Abonné
L'exemple suivant contient du code que vous pouvez utiliser dans un déclencheur appliqué à une table de l'Abonné.
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. Ajouter du code à un déclencheur sur une table Publisher
Le code peut également être ajouté à un déclencheur sur une table sur le serveur de publication ; le code est similaire, mais l’appel à sp_check_for_sync_trigger inclut un paramètre supplémentaire.
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
autorisations
sp_check_for_sync_trigger procédure stockée peut être exécutée par n’importe quel utilisateur disposant d’autorisations SELECT dans la vue système sys.objects.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour