sp_changesubstatus (Transact-SQL)
Altera o status de um Assinante existente. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.
Sintaxe
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' ]
Argumentos
[ @publication=] 'publication'
É o nome da publicação. publication é sysname, com um padrão %. Se publication não for especificado, todas as publicações serão afetadas.[ @article=] 'article'
É o nome do artigo. Deve ser exclusivo da publicação. article é sysname, com um padrão %. Se article não for especificado, todas as publicações serão afetadas.[ @subscriber=] 'subscriber'
É o nome do Assinante cujo status deve ser alterado. subscriber é sysname, com um padrão %. Se subscriber não for especificado, o status de todos os Assinantes será alterado para o artigo especificado.[ @status =] 'status'
É o status da Assinatura na tabela syssubscriptions. status é sysname, sem padrão, e, pode ser um destes valores.Valor
Descrição
active
O Assinante está sincronizado e recebendo dados.
inactive
Entrada de assinante existe sem uma assinatura.
subscribed
O Assinante está solicitando dados, mas ainda não está sincronizado.
[ @previous_status=] 'previous_status'
É o status anterior da assinatura. previous_status é sysname, com um padrão NULL. Esse parâmetro permite que você altere qualquer assinatura atualmente com esse status, permitindo, assim, funções de grupo em um conjunto específico de assinaturas (por exemplo, a definição de todas as assinaturas ativas de volta a subscribed).[ @destination_db=] 'destination_db'
É o nome do banco de dados de destino. destination_db é sysname, com um padrão %.[ @frequency_type=] frequency_type
É a freqüência de agendamento da tarefa de distribuição. frequency_type é int, com um padrão NULL.[ @frequency_interval=] frequency_interval
É o valor a ser aplicado à freqüência definida por frequency_type. frequency_interval é int, com um padrão NULL.[ @frequency_relative_interval=] frequency_relative_interval
É a data da tarefa de distribuição. É o parâmetro usado quando frequency_type é definido como 32 (relativo ao mês). frequency_relative_interval é int, e pode ser um destes valores.Valor
Descrição
1
Primeiro
2
Segundo
4
Terceiro
8
Quarto
16
Último
NULL (padrão)
[ @frequency_recurrence_factor=] frequency_recurrence_factor
É o fator de recorrência usado por frequency_type. frequency_recurrence_factor é int, com um padrão NULL.[ @frequency_subday=] frequency_subday
É a freqüência, em minutos, de reagendamento durante o período definido. frequency_subday é int, e pode ser um destes valores.Valor
Descrição
1
Uma vez
2
Segundo
4
Minuto
8
Hora
NULL (padrão)
[ @frequency_subday_interval=] frequency_subday_interval
É o intervalo para frequency_subday. frequency_subday_interval é int, com um padrão NULL.[ @active_start_time_of_day=] active_start_time_of_day
É a hora do dia do primeiro agendamento da tarefa de distribuição, formatada como HHMMSS. active_start_time_of_day é int, com um padrão NULL.[ @active_end_time_of_day=] active_end_time_of_day
É a hora do dia em que a tarefa de distribuição deixa de ser agendada, formatada como HHMMSS. active_end_time_of_day é int, com um padrão NULL.[ @active_start_date=] active_start_date
É a data do primeiro agendamento da tarefa de distribuição, formatada como YYYYMMDD. active_start_date é int, com um padrão NULL.[ @active_end_date=] active_end_date
É a data em que a tarefa de distribuição deixa de ser agendada, formatada como YYYYMMDD. active_end_date é int, com um padrão de NULL.[ @optional_command_line=] 'optional_command_line'
É o prompt de comando opcional. optional_command_line é nvarchar(4000), com um padrão NULL.[ @distribution_jobid=] distribution_jobid
É a ID de trabalho do Distribution Agent no Distribuidor para a assinatura, ao alterar o status da assinatura de inativo para ativo. Em outros casos, não é definida. Se mais de um Distribution Agent for envolvido em uma única chamada para esse procedimento armazenado, o resultado não será definido. distribution_jobid é binary(16), com um padrão[ @from_auto_sync=] from_auto_sync
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.[ @ ignore_distributor =] ignore_distributor
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.[ @offloadagent= ] remote_agent_activation
Observação A ativação do agente remoto foi preterida e não tem mais suporte. Esse parâmetro tem suporte somente para manter a compatibilidade com versões anteriores de scripts. A definição de remote_agent_activation com um valor diferente de 0 gera um erro.
[ @offloadserver= ] 'remote_agent_server_name'
Observação A ativação do agente remoto foi preterida e não tem mais suporte. Esse parâmetro só tem suporte para manter a compatibilidade com versões anteriores de scripts. A definição de remote_agent_server_name como qualquer valor não-NULL gera um erro.
[ @dts_package_name= ] 'dts_package_name'
Especifica o nome do pacote DTS (Data Transformation Services). . dts_package_name é um sysname, com um padrão de NULL. Por exemplo, para um pacote nomeado DTSPub_Package, especifique @dts_package_name = N'DTSPub_Package'.[ @dts_package_password= ] 'dts_package_password'
Especifica a senha no pacote.. dts_package_password é sysname com um padrão NULL, que especifica que a propriedade da senha não deve ser alterada.Observação Um pacote DTS deve ter uma senha.
[ @dts_package_location= ] dts_package_location
Especifica o local do pacote. dts_package_location é um int, com um padrão de 0. Se for 0, o local do pacote é no Distribuidor. Se for 1, o local de pacote é no Assinante. O local do pacote pode ser distribuidor ou assinante.[ @skipobjectactivation= ] skipobjectactivation
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.[ @distribution_job_name= ] 'distribution_job_name'
É o nome do trabalho de distribuição. distribution_job_name é sysname, com um padrão NULL.[ @publisher= ] 'publisher'
Especifica um Publicador não-Microsoft SQL Server. publisher é sysname, com um padrão de NULL.Observação publisher não deve ser usado ao alterar propriedades de artigo em um Publicador SQL Server.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Comentários
sp_changesubstatus é usado em replicação de instantâneo e replicação transacional.
sp_changesubstatus altera o estado do Assinante na tabela syssubscriptions pelo status alterado. Se necessário, atualiza o status do artigo na tabela sysarticles para indicar ativo ou inativo. Se necessário, define o sinalizador de replicação como ativo ou inativo na tabela sysobjects para a tabela replicada.
Permissões
Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_changesubstatus.