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
Azure SQL Managed Instance
Markerar prenumerationen för ominitialisering. Denna lagrade procedur körs hos Publisher för push-prenumerationer.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_reinitsubscription
[ [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
, [ @subscriber = ] N'subscriber'
[ , [ @destination_db = ] N'destination_db' ]
[ , [ @for_schema_change = ] for_schema_change ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]
[ , [ @invalidate_snapshot = ] invalidate_snapshot ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen.
@publication är sysname, med standardvärdet all.
[ @article = ] Inte en artikel'
Namnet på artikeln.
@article är sysname, med standardvärdet .all För en publikation som uppdateras omedelbart måste @article vara all. Annars hoppar den lagrade proceduren över publiceringen och rapporterar ett fel.
[ @subscriber = ] N'prenumerant'
Namnet på prenumeranten. @subscriber är sysname, utan standard.
[ @destination_db = ] N'destination_db'
Namnet på destinationsdatabasen.
@destination_db är sysname, med standardvärdet .all
[ @for_schema_change = ] for_schema_change
Anger om ominitialisering sker som ett resultat av en schemaändring i publiceringsdatabasen.
@for_schema_change är bit, med standardvärdet .0
Om
0, aktiveras aktiva prenumerationer för publikationer som tillåter omedelbar uppdatering på nytt så länge hela publikationen, och inte bara några av dess artiklar, återinitieras. Detta innebär att ominitialiseringen initieras som ett resultat av schemaändringar.Om
1, aktiveras aktiva prenumerationer inte förrän Snapshot Agent körs.
[ @publisher = ] N'publisher'
Anger en utgivare som inte är SQL Server.
@publisher är sysname, med standardvärdet NULL.
@publisher bör inte användas för SQL Server Publishers.
[ @ignore_distributor_failure = ] ignore_distributor_failure
Tillåter ominitialisering även om distributören inte finns eller är offline.
@ignore_distributor_failure är bit, med standardvärdet .0 Om 0, misslyckas ominitialiseringen om distributören inte finns eller är offline.
[ @invalidate_snapshot = ] invalidate_snapshot
Ogiltigförklarar den befintliga publikationsögonblicksbilden.
@invalidate_snapshot är bit, med en standard på 0. Om 1, genereras en ny ögonblicksbild för publikationen.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_reinitsubscription används vid transaktionell replikation.
sp_reinitsubscription stöds inte för peer-to-peer-transaktionell replikation.
För prenumerationer där den initiala snapshoten appliceras automatiskt och där publiceringen inte tillåter uppdaterbara prenumerationer måste Snapshot Agent köras efter att denna lagrade procedur har körts så att schema- och bulkkopieringsfiler förbereds och Distribution Agents sedan kan omsynkronisera prenumerationerna.
För prenumerationer där den initiala snapshoten tillämpas automatiskt och publiceringen tillåter uppdaterbara prenumerationer, synkroniserar Distribution Agent prenumerationen med det senaste schemat och bulkkopierar programfiler som tidigare skapats av Snapshot Agent. Distribution Agent synkroniserar om prenumerationen omedelbart efter att användaren kört sp_reinitsubscription, om Distribution Agent inte är upptagen. Annars kan synkronisering ske efter meddelandeintervallet (specificerat av Distribution Agent-kommandopromptparametern MessageInterval).
sp_reinitsubscription har ingen effekt på prenumerationer där den initiala snapshoten appliceras manuellt.
För att omsynkronisera anonyma prenumerationer till en publikation, pass-in all eller NULL som @subscriber.
Transaktionell replikation stödjer prenumerationsreinitialisering på artikelnivå. Ögonblicksbildet av artikeln appliceras på nytt vid prenumeranten vid nästa synkronisering efter att artikeln markerats för ominitialisering. Men om det finns beroende artiklar som också prenumereras på av samma prenumerant, kan återapplicera snapshoten på artikeln misslyckas om inte beroende artiklar i publikationen automatiskt återinitieras under vissa omständigheter:
Om förskapandekommandot i artikeln är
drop, är artiklar för schema-bundna vyer och schema-bundna lagrade procedurer på basobjektet i den artikeln också markerade för ominitialisering.Om schemaalternativet i artikeln inkluderar skriptning av deklarerad referentiell integritet på primärnycklarna, markeras artiklar som har bastabeller, med främmande nyckelrelationer till bastabellerna för den ominitialiserade artikeln, också för ominitialisering.
Examples
-- 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'AdvWorksProductTran';
USE [AdventureWorks2022Replica]
-- Execute at the Publisher to reinitialize the push subscription.
EXEC sp_reinitsubscription
@subscriber = $(SubServer),
@destination_db = @subscriptionDB,
@publication = @publication;
GO
-- Start the Distribution Agent.
Permissions
Endast medlemmar av sysadmin-rollen med fast server, medlemmar i db_owner fasta databasrollen eller skaparen av prenumerationen kan köra sp_reinitsubscription.