Partager via


sp_changesubstatus (Transact-SQL)

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

Icône Lien de rubrique Conventions 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. 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 % comme 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. 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 avoir 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, avec NULL comme valeur par défaut.

  • [ @frequency_interval=] frequency_interval
    Valeur appliquée à la fréquence définie par frequency_type. 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 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

    Première

    2

    Seconde

    4

    Troisième

    8

    Quatrième

    16

    Dernière

    NULL (par défaut)

     

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec NULL comme valeur par défaut.

  • [ @frequency_subday=] frequency_subday
    Indique, en minutes, la fréquence de replanification pendant 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 (par défaut)

     

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervalle pour frequency_subday. frequency_subday_interval est de type int, avec NULL comme valeur par défaut.

  • [ @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 NULL comme valeur par défaut.

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

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

  • [ @active_end_date=] active_end_date
    Date à laquelle la tâche de distribution cesse d'être planifiée, exprimée au format AAAAMMJJ. 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 NULL comme valeur par défaut.

  • [ @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. 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éconseillée 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éconseillée 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
    Spécifie 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. distribution_job_name est de type sysname, avec NULL comme valeur par défaut.

  • [ @publisher= ] 'publisher'
    Spécifie un serveur de publication non Microsoft SQL Server. publisher est de type sysname, avec NULL comme valeur par défaut.

    [!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 d'instantané 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.

Voir aussi

Référence

sp_addsubscription (Transact-SQL)

sp_dropsubscription (Transact-SQL)

sp_helpdistributor (Transact-SQL)

sp_helpsubscription (Transact-SQL)

Procédures stockées système (Transact-SQL)