Partage via


sp_changesubstatus (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Modifie l'état d'un abonné existant. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_changesubstatus
    [ [ @publication = ] N'publication' ]
    [ , [ @article = ] N'article' ]
    [ , [ @subscriber = ] N'subscriber' ]
    , [ @status = ] N'status'
    [ , [ @previous_status = ] N'previous_status' ]
    [ , [ @destination_db = ] N'destination_db' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subday = ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @optional_command_line = ] N'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent = ] offloadagent ]
    [ , [ @offloadserver = ] N'offloadserver' ]
    [ , [ @dts_package_name = ] N'dts_package_name' ]
    [ , [ @dts_package_password = ] N'dts_package_password' ]
    [ , [ @dts_package_location = ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation ]
    [ , [ @distribution_job_name = ] N'distribution_job_name' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]
[ ; ]

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, avec la valeur par défaut %. Si @publication n’est pas spécifié, toutes les publications sont affectées.

[ @article = ] N’article'

Nom de l’article. @article est sysname, avec la valeur par défaut %. Doit être unique et propre à la publication. Si @article n’est pas spécifié, tous les articles sont affectés.

[ @subscriber = ] N’subscriber'

Nom de l’Abonné pour modifier l’état de. @subscriber est sysname, avec la valeur par défaut %. Si @subscriber n’est pas spécifié, l’état est modifié pour tous les Abonnés à l’article spécifié.

[ @status = ] N’status'

État de l’abonnement dans la syssubscriptions table. @status est sysname et peut être l’une de ces valeurs.

Valeur Description
active L'abonné est synchronisé et reçoit des données.
inactive L'entrée de l'abonné existe, sans abonnement.
subscribed L’abonné demande des données, mais n’est pas encore synchronisé.

[ @previous_status = ] N’previous_status'

État précédent de l’abonnement. @previous_status est sysname, avec la valeur par défaut NULL. Ce paramètre vous permet de modifier tous les abonnements qui ont actuellement cet état, ce qui autorise les fonctions de groupe sur un ensemble spécifique d’abonnements (par exemple, en définissant tous les abonnements actifs sur subscribed).

[ @destination_db = ] N’destination_db'

Nom de la base de données de destination @destination_db est sysname, avec la valeur par défaut %.

[ @frequency_type = ] frequency_type

Spécifie la fréquence avec laquelle planifier la tâche de distribution. @frequency_type est int, avec la valeur par défaut NULL.

[ @frequency_interval = ] frequency_interval

Valeur à appliquer à la fréquence définie par @frequency_type. @frequency_interval est int, avec la valeur par défaut NULL.

[ @frequency_relative_interval = ] frequency_relative_interval

Date de la tâche de distribution. Ce paramètre est utilisé lorsque @frequency_type est défini sur 32 (relatif mensuel). @frequency_relative_interval est int et peut être l’une de ces valeurs.

Valeur Description
1 First
2 Second
4 Third
8 Quatrième
16 Dernière
NULL (valeur par défaut)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor

Facteur de périodicité utilisé par @frequency_type. @frequency_recurrence_factor est int, avec la valeur par défaut NULL.

[ @frequency_subday = ] frequency_subday

Spécifie la fréquence, en minutes, de replanifier pendant la période définie. @frequency_subday est int et peut être l’une de ces valeurs.

Valeur Description
1 Une fois
2 Second
4 Minute
8 Heure
NULL (valeur par défaut)

[ @frequency_subday_interval = ] frequency_subday_interval

Intervalle de @frequency_subday. @frequency_subday_interval est int, avec la valeur par défaut NULL.

[ @active_start_time_of_day = ] active_start_time_of_day

Heure du jour où la tâche de distribution est planifiée pour la première fois, mise en forme comme HHmmss. @active_start_time_of_day est int, avec la valeur par défaut NULL.

[ @active_end_time_of_day = ] active_end_time_of_day

Heure du jour où la tâche de distribution cesse d’être planifiée, mise en forme comme HHmmss. @active_end_time_of_day est int, avec la valeur par défaut NULL.

[ @active_start_date = ] active_start_date

Date à laquelle la tâche de distribution est planifiée pour la première fois, mise en forme en tant que yyyyMMdd. @active_start_date est int, avec une valeur par défaut de NULL.

[ @active_end_date = ] active_end_date

Date à laquelle la tâche de distribution cesse d’être planifiée, mise en forme en tant que yyyyMMdd. @active_end_date est int, avec une valeur par défaut de NULL.

[ @optional_command_line = ] N’optional_command_line'

Invite de commandes facultative. @optional_command_line est nvarchar(4000), avec la valeur par défaut NULL.

[ @distribution_jobid = ] sortie de distribution_jobid

ID de travail de l’Agent de distribution sur le serveur de distribution pour l’abonnement lors de la modification de l’état de l’abonnement de l’état inactif à actif. Dans d’autres cas, il n’est pas défini. Si plusieurs Agent de distribution sont impliqués dans un seul appel à cette procédure stockée, le résultat n’est pas défini. @distribution_jobid est un paramètre OUTPUT de type binary(16).

[ @from_auto_sync = ] from_auto_sync

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

[ @ignore_distributor = ] ignore_distributor

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

[ @offloadagent = ] déchargement

Ce paramètre est déconseillé et est maintenu pour la compatibilité descendante des scripts. Définir @offloadagent sur une valeur autre que 0 la génération d’une erreur.

[ @offloadserver = ] N’offloadserver'

Ce paramètre est déconseillé et est maintenu pour la compatibilité descendante des scripts. La définition de @offloadserver sur n’importe quelle valeur non NULL génère une erreur.

[ @dts_package_name = ] N’dts_package_name'

Spécifie le nom du package DTS (Data Transformation Services). @dts_package_name est sysname, avec la valeur par défaut NULL. Par exemple, pour un package nommé DTSPub_Package , vous devez spécifier @dts_package_name = N'DTSPub_Package'.

[ @dts_package_password = ] N’dts_package_password'

Spécifie le mot de passe du package. @dts_package_password est nvarchar(524), avec une valeur par défaut NULL, qui spécifie que la propriété de mot de passe doit être laissée inchangée.

Remarque

Un package DTS doit avoir un mot de passe.

[ @dts_package_location = ] dts_package_location

Spécifie l'emplacement du package. @dts_package_location est int, avec la valeur par défaut 0.

  • Si 0, l’emplacement du package se trouve sur le serveur de distribution.
  • Si 1, l’emplacement du package se trouve sur l’Abonné.

L’emplacement du package peut être distributor ou subscriber.

[ @skipobjectactivation = ] skipobjectactivation

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

[ @distribution_job_name = ] N’distribution_job_name'

Nom du travail de distribution. @distribution_job_name est sysname, avec la valeur par défaut NULL.

[ @publisher = ] N’publisher'

Spécifie un serveur de publication non-SQL Server. @publisher est sysname, avec la valeur par défaut NULL.

@publisher ne doit pas être utilisé lors de la modification des propriétés d’article sur un serveur de publication SQL Server.

[ @ignore_distributor_failure = ] ignore_distributor_failure

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_changesubstatus est utilisé dans la réplication d’instantanés et la réplication transactionnelle.

sp_changesubstatus modifie l’état de l’Abonné dans la syssubscriptions table avec l’état modifié. Si nécessaire, il met à jour l’état de l’article dans le sysarticles tableau pour indiquer actif ou inactif. Si nécessaire, il définit l’indicateur de réplication activé ou désactivé dans la sysobjects table pour la table répliquée.

autorisations

Seuls les membres du rôle serveur fixe sysadmin , db_owner rôle de base de données fixe ou le créateur de l’abonnement peuvent s’exécuter sp_changesubstatus.