Partager via


sp_reinitmergepullsubscription (Transact-SQL)

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é.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_reinitmergepullsubscription [ [ @publisher = ] 'publisher' ]
    [ , [ @publisher_db = ] 'publisher_db' ]
    [ , [ @publication = ] 'publication' ]
    [ , [ @upload_first = ] 'upload_first'

Arguments

  • [ @publisher = ] 'publisher'
    Nom du serveur de publication. publisher est de type sysname, avec ALL comme valeur par défaut.

  • [ @publisher_db = ] 'publisher_db'
    Nom de la base de données du serveur de publication. publisher_db est de type sysname, avec ALL comme valeur par défaut.

  • [ @publication = ] 'publication'
    Nom de la publication. publication est de type sysname, avec ALL comme valeur par défaut.

  • [ @upload_first = ] 'upload_first'
    Indique si les modifications effectuées sur l'Abonné sont chargées avant la réinitialisation de l'abonnement. upload_first est de type nvarchar(5), avec FALSE comme valeur par défaut. Si la valeur est true, les modifications sont téléchargées avant la réinitialisation de l'abonnement. Si la valeur est false, les modifications ne sont pas téléchargées.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

sp_reinitmergepullsubscription est utilisé au cours d'une réplication de fusion.

Si vous ajoutez, supprimez ou modifiez un filtre paramétré, les modifications en attente chez l'abonné ne peuvent pas être chargées sur le serveur de publication pendant la réinitialisation. Pour charger des modifications en attente, vous devez synchroniser tous les abonnements avant de modifier le filtre.

Exemple

-- 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'AdventureWorks2008R2';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2008R2Replica]

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

-- 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'AdventureWorks2008R2';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2008R2Replica]

-- 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 du rôle de base de données fixe db_owner peuvent exécuter la procédure sp_reinitmergepullsubscription.