sp_reinitmergepullsubscription (Transact-SQL)
S’applique à : SQL Server
Signale un abonnement de fusion extrait en vue de sa réinitialisation lors de la prochaine exécution de l'Agent de fusion. Cette procédure stockée est exécutée dans la base de données d'abonnement de l'abonné.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_reinitmergepullsubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
[ , [ @publication = ] N'publication' ]
[ , [ @upload_first = ] N'upload_first' ]
[ ; ]
Arguments
[ @publisher = ] N’publisher'
Nom du serveur de publication. @publisher est sysname, avec la valeur par défaut all
.
[ @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 all
.
[ @publication = ] N’publication'
Nom de la publication. @publication est sysname, avec la valeur par défaut all
.
[ @upload_first = ] N’upload_first'
Spécifie si les modifications apportées à l’Abonné sont chargées avant la réinitialisation de l’abonnement. @upload_first est nvarchar(5), avec la valeur par défaut false
.
- Si
true
, les modifications sont chargées avant la réinitialisation de l’abonnement. - Si
false
, les modifications ne sont pas chargées.
Valeurs des codes de retour
0
(réussite) ou 1
(échec).
Notes
sp_reinitmergepullsubscription
est utilisé dans la réplication de fusion.
Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente sur l’Abonné ne peuvent pas être chargées sur le serveur de publication pendant la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.
Exemples
R. Réinitialiser l’abonnement par extraction et perdre les modifications en attente
-- 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'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2022Replica]
-- Execute at the Subscriber to reinitialize the pull subscription.
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergepullsubscription
@publisher = $(PubServer),
@publisher_db = @publicationDB,
@publication = @publication,
@upload_first = N'false';
GO
-- Start the Merge Agent.
B. Réinitialiser l’abonnement par extraction et charger les modifications en attente
-- 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'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2022Replica]
-- Execute at the Subscriber to reinitialize the pull subscription,
-- and upload pending changes at the Subscriber.
EXEC sp_reinitmergepullsubscription
@publisher = $(PubServer),
@publisher_db = @publicationDB,
@publication = @publication,
@upload_first = N'true';
GO
-- Start the Merge 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_reinitmergepullsubscription
.