Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Markerar en merge-prenumeration för ominitialisering nästa gång Merge Agent körs. Denna lagrade procedur utförs hos Publisher i publiceringsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_reinitmergesubscription
[ [ @publication = ] N'publication' ]
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @upload_first = ] N'upload_first' ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen.
@publication är sysname, med standardvärdet all.
[ @subscriber = ] N'prenumerant'
Namnet på prenumeranten.
@subscriber är sysname, med standardvärdet .all
[ @subscriber_db = ] N'subscriber_db'
Namnet på prenumerantdatabasen.
@subscriber_db är sysname, med standardvärdet .all
[ @upload_first = ] N'upload_first'
Specificerar om ändringar hos prenumeranten laddas upp innan prenumerationen återinitialiseras.
@upload_first är nvarchar(5), med en standard på false.
- Om
true, laddas ändringar upp innan prenumerationen återinitieras. - Om
false, laddas inte ändringar upp.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_reinitmergesubscription används vid sammanslagningsreplikation.
sp_reinitmergesubscriptionkan anropas från Publisher för att ominitiera sammanslagningsprenumerationer. Du bör också köra Snapshot Agent igen.
Om du lägger till, tar bort eller ändrar ett parameteriserat filter kan väntande ändringar hos Subscriber inte laddas upp till Publisher under ominitialiseringen. Om du vill ladda upp väntande ändringar synkroniserar du alla prenumerationer innan du ändrar filtret.
Examples
A. Starta om push-prenumerationen och förlora väntande ändringar
-- 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. Starta om push-prenumerationen och ladda upp väntande ändringar
-- 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.
Permissions
Endast medlemmar av sysadmin-rollen med fast server eller db_owner fast databasroll kan köra sp_reinitmergesubscription.