sp_reinitmergesubscription (Transact-SQL)

S’applique à :SQL Server

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.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, avec la valeur par défaut all.

[ @subscriber = ] N’subscriber'

Nom de l'Abonné. @subscriber est sysname, avec la valeur par défaut all.

[ @subscriber_db = ] N’subscriber_db'

Nom de la base de données de l’Abonné. @subscriber_db 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_reinitmergesubscription est utilisé dans la réplication de fusion.

sp_reinitmergesubscription peut être appelé à partir du serveur de publication pour réinitialiser les abonnements de fusion. Vous devez également réexécuter l’Agent d’instantané.

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

USE [AdventureWorks2022Replica]

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

B. Réinitialiser l’abonnement Push 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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorks2022Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- 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 le rôle de base de données fixe db_owner peuvent s’exécuter sp_reinitmergesubscription.