Partager via


sp_reinitmergesubscription (Transact-SQL)

Signale un abonnement de fusion 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 de publication du serveur de publication.

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

Syntaxe

sp_reinitmergesubscription [ [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber'
    [ , [ @subscriber_db = ] 'subscriber_db'
    [ , [ @upload_first = ] 'upload_first'

Arguments

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

  • [ @subscriber = ] 'subscriber'
    Nom de l'Abonné. subscriber est de type sysname, avec all comme valeur par défaut.

  • [ @subscriber_db = ] 'subscriber_db'
    Nom de la base de données de l'Abonné. subscriber_db 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_reinitmergesubscription est utilisé au cours d'une réplication de fusion.

sp_reinitmergesubscription peut être appelée à partir du serveur de publication pour réinitialiser les abonnements de fusion. Il est recommandé de réexécuter également l'Agent de capture instantanée.

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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorksReplica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorksReplica]

-- Execute at the Publisher to reinitialize the push subscription. 
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorksReplica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorksReplica]

-- Execute at the Publisher to reinitialize the push subscription, 
-- and upload pending changes at the Subscriber. 
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @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_reinitmergesubscription.