sp_reinitsubscription (Transact-SQL)sp_reinitsubscription (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Marque l'abonnement pour la réinitialisation.Marks the subscription for reinitialization. Cette procédure stockée est exécutée sur le serveur de publication pour les abonnements par envoi de données (push).This stored procedure is executed at the Publisher for push subscriptions.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
sp_reinitsubscription [ [ @publication = ] 'publication' ]  
    [ , [ @article = ] 'article' ]  
        , [ @subscriber = ] 'subscriber'  
    [ , [ @destination_db = ] 'destination_db']  
    [ , [ @for_schema_change = ] 'for_schema_change']  
    [ , [ @publisher = ] 'publisher' ]  
    [ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]   
    [ , [ @invalidate_snapshot = ] invalidate_snapshot ]  

ArgumentsArguments

[ @publication = ] 'publication'Nom de la publication.[ @publication = ] 'publication' Is the name of the publication. publication est de type sysname, avec All comme valeur par défaut.publication is sysname, with a default of all.

[ @article = ] 'article'Nom de l’article.[ @article = ] 'article' Is the name of the article. article est de type sysname, avec All comme valeur par défaut.article is sysname, with a default of all. Pour une publication avec mise à jour immédiate, l’article doit être All; dans le cas contraire, la procédure stockée ignore la publication et signale une erreur.For an immediate-updating publication, article must be all; otherwise, the stored procedure skips the publication and reports an error.

[ @subscriber = ] 'subscriber'Nom de l’abonné.[ @subscriber = ] 'subscriber' Is the name of the Subscriber. Subscriber est de type sysname, sans valeur par défaut.subscriber is sysname, with no default.

[ @destination_db = ] 'destination_db'Nom de la base de données de destination.[ @destination_db = ] 'destination_db' Is the name of the destination database. destination_db est de type sysname, avec All comme valeur par défaut.destination_db is sysname, with a default of all.

[ @for_schema_change = ] 'for_schema_change'Indique si la réinitialisation se produit à la suite d’une modification de schéma au niveau de la base de données de publication.[ @for_schema_change = ] 'for_schema_change' Indicates whether reinitialization occurs as a result of a schema change at the publication database. for_schema_change est de valeur de bit, avec 0 comme valeur par défaut.for_schema_change is bit, with a default of 0. Si la valeur est 0, les abonnements actifs pour les publications qui autorisent la mise à jour immédiate sont réactivés tant que la publication entière, et pas seulement certains de ses articles, sont réinitialisées.If 0, active subscriptions for publications that allow immediate updating are reactivated as long as the whole publication, and not just some of its articles, are reinitialized. Ceci implique que la réinitialisation est effectuée à la suite de modifications du schéma.This means that the reinitialization is being initiated as a result of schema changes. Si la condition est 1, les abonnements actifs ne sont pas réactivés tant que le agent d’instantané n’est pas exécuté.If 1, active subscriptions are not reactivated until the Snapshot Agent runs.

[ @publisher = ] 'publisher'Spécifie un serveur SQL ServerSQL Server de publication non-.[ @publisher = ] 'publisher' Specifies a non- SQL ServerSQL Server publisher. Publisher est de type sysname, avec NULL comme valeur par défaut.publisher is sysname, with a default of NULL.

Notes

l' éditeur ne doit pas être SQL ServerSQL Server utilisé pour les serveurs de publication.publisher should not be used for SQL ServerSQL Server Publishers.

[ @ignore_distributor_failure = ] ignore_distributor_failureAutorise la réinitialisation même si le serveur de distribution n’existe pas ou est hors connexion.[ @ignore_distributor_failure = ] ignore_distributor_failure Allows reinitialization even if the Distributor does not exist or is offline. ignore_distributor_failure est de valeur de bit, avec 0 comme valeur par défaut.ignore_distributor_failure is bit, with a default of 0. Si la valeur est 0, la réinitialisation échoue si le serveur de distribution n’existe pas ou est hors connexion.If 0, reinitialization fails if the Distributor does not exist or is offline.

[ @invalidate_snapshot = ] invalidate_snapshotInvalide l’instantané existant de la publication.[ @invalidate_snapshot = ] invalidate_snapshot Invalidates the existing publication snapshot. invalidate_snapshot est de valeur de bit, avec 0 comme valeur par défaut.invalidate_snapshot is bit, with a default of 0. Si la variable est 1, un nouvel instantané est généré pour la publication.If 1, a new snapshot is generated for the publication.

Valeurs des codes de retourReturn Code Values

0 (succès) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_reinitsubscription est utilisé dans la réplication transactionnelle.sp_reinitsubscription is used in transactional replication.

sp_reinitsubscription n’est pas pris en charge pour la réplication transactionnelle d’égal à égal.sp_reinitsubscription is not supported for peer-to-peer transactional replication.

Pour les abonnements dans lesquels l'instantané initial est appliqué automatiquement et où la publication n'autorise pas les abonnements pouvant être mis à jour, l'Agent d'instantané doit être exécuté après l'exécution de cette procédure stockée pour que les fichiers du schéma et du programme de copie en bloc soient préparés et que les Agents de distribution puissent ensuite resynchroniser les abonnements.For subscriptions where the initial snapshot is applied automatically and where the publication does not allow updatable subscriptions, the Snapshot Agent must be run after this stored procedure is executed so that schema and bulk copy program files are prepared and the Distribution Agents is then able to resynchronize the subscriptions.

Lorsque l'instantané initial est appliqué automatiquement et que la publication autorise les abonnements pouvant être mis à jour, l'Agent de distribution resynchronise l'abonnement à partir des fichiers de schéma et de programme de copie en bloc les plus récents préalablement créés par l'Agent d'instantané.For subscriptions where the initial snapshot is applied automatically and the publication allows updatable subscriptions, the Distribution Agent resynchronizes the subscription using the most recent schema and bulk copy program files previously created by the Snapshot Agent. Le Agent de distribution resynchronise l’abonnement immédiatement après que l’utilisateur a exécuté sp_reinitsubscription, si le agent de distribution n’est pas occupé; Sinon, la synchronisation peut avoir lieu après l’intervalle de message (spécifié par Agent de distribution paramètre d’invite de commandes: MessageInterval).The Distribution Agent resynchronizes the subscription immediately after the user executes sp_reinitsubscription, if the Distribution Agent is not busy; otherwise, synchronization may occur after the message interval (specified by Distribution Agent command-prompt parameter: MessageInterval).

sp_reinitsubscription n’a aucun effet sur les abonnements où l’instantané initial est appliqué manuellement.sp_reinitsubscription has no effect on subscriptions where the initial snapshot is applied manually.

Pour resynchroniser les abonnements anonymes à une publication, transmettez All ou null en tant qu' abonné.To resynchronize anonymous subscriptions to a publication, pass in all or NULL as subscriber.

La réplication transactionnelle prend en charge la réinitialisation d'abonnements au niveau de l'article.Transactional replication supports subscription reinitialization at the article level. L'instantané de l'article est réappliqué sur l'Abonné au cours de la synchronisation suivante après que l'article a été marqué pour la réinitialisation.The snapshot of the article is reapplied at the Subscriber during the next synchronization after the article is marked for reinitialization. Toutefois, si le même Abonné a également souscrit à des articles dépendants, la réapplication de l'instantané sur l'article peut échouer sauf si les articles dépendants de la publication sont également automatiquement réinitialisés sous certaines conditions :However, if there are dependent articles that are also subscribed to by the same Subscriber, reapplying the snapshot on the article might fail unless dependent articles in the publication are also automatically reinitialized under certain circumstances:

  • Si la commande de pré-création de l'article est 'drop', les articles des vues liées au schéma et les procédures stockées liées au schéma sur l'objet de base de cet article sont également marqués pour la réinitialisation.If the pre-creation command on the article is 'drop', articles for schema-bound views and schema-bound stored procedures on the base object of that article is marked for reinitialization as well.

  • Si l'option de schéma sur l'article inclut le script d'intégrité référentielle déclarée sur les clés primaires, les articles qui ont des tables de base avec des relations de clés étrangères à des tables de base de l'article réinitialisé sont également marqués pour la réinitialisation.If the schema option on the article includes scripting of declared referential integrity on the primary keys, articles that have base tables with foreign key relationships to base tables of the reinitialized article are marked for reinitialization as well.

ExempleExample

-- 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'AdventureWorks2012Replica';
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2012Replica]

-- Execute at the Publisher to reinitialize the push subscription.
EXEC sp_reinitsubscription 
    @subscriber = $(SubServer),
    @destination_db = @subscriptionDB,
    @publication = @publication;
GO

-- Start the Distribution Agent.

AutorisationsPermissions

Seuls les membres du rôle serveur fixe sysadmin , les membres du rôle de base de données fixe db_owner ou le créateur de l’abonnement peuvent exécuter sp_reinitsubscription.Only members of the sysadmin fixed server role, members of the db_owner fixed database role, or the creator of the subscription can execute sp_reinitsubscription.

Voir aussiSee Also

Réinitialiser un abonnement Reinitialize a Subscription
Réinitialiser des abonnements Reinitialize Subscriptions
Procédures stockées de réplication (Transact-SQL)Replication Stored Procedures (Transact-SQL)