sp_reinitpullsubscription (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Signale un abonnement par extraction de données (pull) transactionnel ou anonyme en vue de sa réinitialisation lors de la prochaine exécution de l’Agent de distribution. Cette procédure stockée est exécutée sur la base de données d'abonnement par extraction de données (pull) de l'abonné.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_reinitpullsubscription
    [ @publisher = ] N'publisher'
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
[ ; ]

Arguments

[ @publisher = ] N’publisher'

Nom du serveur de publication. @publisher est sysname, sans valeur par défaut.

[ @publisher_db = ] N’publisher_db'

Nom de la base de données du serveur de publication. @publisher_db est sysname, avec la valeur par défaut NULL.

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, avec une valeur par défaut all, qui marque tous les abonnements pour la réinitialisation.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_reinitpullsubscription est utilisé dans la réplication transactionnelle.

sp_reinitpullsubscription n’est pas pris en charge pour la réplication transactionnelle d’égal à égal.

sp_reinitpullsubscriptionpeut être appelé à partir de l’Abonné pour réinitialiser l’abonnement, lors de l’exécution suivante du Agent de distribution.

Les abonnements aux publications créées avec la valeur de false @immediate_sync ne peuvent pas être réinitialisés à partir de l’Abonné.

Vous pouvez réinitialiser un abonnement par extraction en exécutant sp_reinitpullsubscription l’Abonné ou sp_reinitsubscription sur le serveur de publication.

Exemples

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2022Replica]

-- Execute at the Subscriber to reinitialize the pull subscription. 
EXEC sp_reinitpullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @publication = @publication;
GO

-- Start the Distribution Agent.

autorisations

Seuls les membres du rôle serveur fixe sysadmin ou le rôle de base de données fixe db_owner peuvent s’exécuter sp_reinitpullsubscription.