Partager via


sp_changesubstatus (Transact-SQL)

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.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_changesubstatus [ [ @publication = ] 'publication' ]
    [ , [ @article = ] 'article' ]
    [ , [ @subscriber = ] 'subscriber' ]
        , [ @status = ] 'status'
    [ , [ @previous_status = ] 'previous_status' ]
    [ , [ @destination_db = ] '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 = ] 'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent= ] remote_agent_activation ]
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]
    [ , [ @dts_package_name= ] 'dts_package_name' ]
    [ , [ @dts_package_password= ] 'dts_package_password' ]
    [ , [ @dts_package_location= ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation
  [ , [ @distribution_job_name= ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]

Arguments

  • [ @publication=] 'publication'
    Nom de la publication. L'argument publication est de type sysname, avec % comme valeur par défaut. Si la valeur de publication n'est pas spécifiée, toutes les publications sont affectées.

  • [ @article= ] 'article'
    Nom de l'article. Doit être unique et propre à la publication. article est de type sysname, avec la valeur % par défaut. Si la valeur de article n'est pas spécifiée, toutes les articles sont affectées.

  • [ @subscriber=] 'subscriber'
    Nom de l'Abonné pour lequel changer l'état. L'argument subscriber est de type sysname, avec % comme valeur par défaut. Si la valeur de subscriber n'est pas spécifiée, l'état est modifié pour tous les abonnés à l'article spécifié.

  • [ @status =] 'status'
    État de l'abonnement dans la table syssubscriptions. status est de type sysname, sans valeur par défaut, et peut prendre l'une des valeurs suivantes.

    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=] 'previous_status'
    État antérieur de l'abonnement. previous_status est de type sysname, avec NULL comme valeur par défaut. Ce paramètre permet de modifier les abonnements ayant actuellement cet état, ce qui permet d'utiliser les fonctions de groupe sur un ensemble spécifique d'abonnements (par exemple, pour réinitialiser tous les abonnements actifs à l'état subscribed).

  • [ @destination_db= ] 'destination_db'
    Nom de la base de données de destination. destination_db est de type sysname, avec % comme valeur par défaut.

  • [ @frequency_type=] frequency_type
    Fréquence de planification de la tâche de distribution. frequency_type est de type int. Sa valeur par défaut est NULL.

  • [ @frequency_interval=] frequency_interval
    Valeur à appliquer à la fréquence définie par frequency_type. L'argument frequency_interval est de type int, avec NULL comme valeur par défaut.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Date de la tâche de distribution. Ce paramètre est utilisé lorsque l'argument frequency_type a la valeur 32 (fréquence mensuelle relative). frequency_relative_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Premier

    2

    Deuxième

    4

    Troisième

    8

    Quatrième

    16

    Dernier

    NULL (valeur par défaut)

     

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. L'argument frequency_recurrence_factor est de type int. Sa valeur par défaut est NULL.

  • [ @frequency_subday=] frequency_subday
    Fréquence de replanification, exprimée en minutes, au cours de la période définie. frequency_subday est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Une fois

    2

    Seconde

    4

    Minute

    8

    Heure

    NULL (valeur par défaut)

     

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervalle pour frequency_subday. L'argument frequency_subday_interval est de type int. Sa valeur par défaut est NULL.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Heure du jour de la première planification de la tâche de distribution, au format HHMMSS. active_start_time_of_day est de type int, avec la valeur par défaut NULL.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Heure à laquelle la tâche de distribution cesse d'être planifiée, au format HHMMSS. active_end_time_of_day est de type int, avec la valeur par défaut NULL.

  • [ @active_start_date = ] active_start_date
    Date de première planification de la tâche de distribution, au format AAAAMMJJ. L'argument active_start_date est de type int. Sa valeur par défaut est NULL.

  • [ @active_end_date = ] active_end_date
    Date à laquelle la tâche de distribution cesse d'être planifiée, au format AAAAMMJJ. L'argument active_end_date est de type int, avec NULL comme valeur par défaut.

  • [ @optional_command_line=] 'optional_command_line'
    Invite de commandes facultative. optional_command_line est de type nvarchar(4000), avec la valeur par défaut NULL.

  • [ @distribution_jobid=] distribution_jobid
    ID du travail de l'Agent de distribution auprès du serveur de distribution de l'abonnement lorsque l'abonnement passe de l'état inactif à actif. Dans les autres cas, il n'est pas défini. Si plus d'un Agent de distribution est impliqué dans un seul appel à cette procédure stockée, le résultat n'est pas défini. L'argument distribution_jobid est de type binary(16), avec NULL comme valeur par défaut.

  • [ @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= ] remote_agent_activation

    [!REMARQUE]

    L'activation d'agent distant constitue une fonctionnalité à déconseiller et n'est désormais plus prise en charge. Ce paramètre n'est maintenu que dans un but de compatibilité ascendante aux scripts. L'attribution à remote_agent_activation d'une valeur différente de 0 génère une erreur.

  • [ @offloadserver= ] 'remote_agent_server_name'

    [!REMARQUE]

    L'activation d'agent distant constitue une fonctionnalité à déconseiller et n'est désormais plus prise en charge. Ce paramètre n'est maintenu que dans un but de compatibilité ascendante aux scripts. L'attribution à remote_agent_server_name d'une valeur non NULL quelconque génère une erreur.

  • [ @dts_package_name= ] 'dts_package_name'
    Spécifie le nom du package DTS (Data Transformation Services). dts_package_name est de type sysname, avec NULL comme valeur par défaut. Par exemple, pour un package nommé DTSPub_Package vous spécifiez @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Spécifie le mot de passe du package. dts_package_password est de type sysname, avec la valeur par défaut NULL qui indique que la propriété de mot de passe ne doit pas être modifiée.

    [!REMARQUE]

    Un package DTS doit posséder un mot de passe.

  • [ @dts_package_location= ] dts_package_location
    Indique l'emplacement du package. dts_package_location est de type int, avec 0 comme valeur par défaut. Si la valeur est 0, l'emplacement du package est sur le serveur de distribution. Si la valeur est 1, l'emplacement du package est 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= ] 'distribution_job_name'
    Nom du travail de distribution. L'argument distribution_job_name est de type sysname, avec NULL comme valeur par défaut.

  • [ @publisher= ] 'publisher'
    Spécifie un serveur de publication non-MicrosoftSQL Server. publisher est de type sysname. Sa valeur par défaut est NULL.

    [!REMARQUE]

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

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_changesubstatus est utilisée dans la réplication de capture instantanée et dans la réplication transactionnelle.

sp_changesubstatus modifie l'état de l'abonné dans la table syssubscriptions avec l'état modifié. Si cela s'avère nécessaire, cette procédure stockée met à jour l'état de l'article dans la table sysarticles pour indiquer active ou inactive. Si nécessaire, elle peut activer ou désactiver le drapeau de réplication dans la table sysobjects pour la table répliquée.

Autorisations

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