Partilhar via


sp_update_schedule (Transact-SQL)

Aplica-se a:SQL Server

Altera as definições para um agendamento do SQL Server Agent.

Transact-SQL convenções de sintaxe

Sintaxe

sp_update_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @freq_type = ] freq_type ]
    [ , [ @freq_interval = ] freq_interval ]
    [ , [ @freq_subday_type = ] freq_subday_type ]
    [ , [ @freq_subday_interval = ] freq_subday_interval ]
    [ , [ @freq_relative_interval = ] freq_relative_interval ]
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @active_start_time = ] active_start_time ]
    [ , [ @active_end_time = ] active_end_time ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Arguments

[ @schedule_id = ] schedule_id

O identificador do anexo a modificar. @schedule_id é int, com um padrão de NULL.

Deve ser especificado @schedule_id ou @name .

[ @name = ] N'nome'

O nome do calendário a modificar. @name é sysname, com um padrão de NULL.

Deve ser especificado @schedule_id ou @name .

[ @new_name = ] N'new_name'

O novo nome para o horário. @new_name é sysname, com um padrão de NULL. Quando @new_name é NULL, o nome do horário mantém-se inalterado.

[ @enabled = ] ativado

Indica o estado atual do calendário. @enabled é tinyint, com o padrão de 1 (ativado). Se 0, o horário não está ativado. Quando o horário não está ativado, nenhum trabalho será executado nesse horário.

[ @freq_type = ] freq_type

Um valor que indica quando um trabalho deve ser executado. @freq_type é int, e pode ser um desses valores.

Valor Description
1 Uma vez
4 Diariamente
8 Weekly
16 Monthly
32 Mensalmente, em relação ao @freq_interval
64 Executar quando o serviço SQL Server Agent iniciar
128 Correr quando o computador estiver parado

[ @freq_interval = ] freq_interval

Os dias em que um trabalho é executado. @freq_interval é int, com um padrão de 0, e depende do valor de @freq_type conforme indicado na tabela seguinte:

Valor da @freq_type Efeito na @freq_interval
1 (uma vez) @freq_interval não é utilizado.
4 (diariamente) De @freq_interval em dias.
8 (semanal) @freq_interval é um ou mais dos seguintes (combinados com um OR operador lógico):

1 = Domingo
2 = Segunda-feira
4 = Terça-feira
8 = Quarta-feira
16 = Quinta-feira
32 = Sexta-feira
64 = Sábado
16 (mensalmente) No @freq_interval dia do mês.
32 (parente mensal) @freq_interval é um dos seguintes:

1 = Domingo
2 = Segunda-feira
3 = Terça-feira
4 = Quarta-feira
5 = Quinta-feira
6 = Sexta-feira
7 = Sábado
8 = Dia
9 = Dias úteis
10 = Dia de fim de semana
64 (quando o serviço SQL Server Agent inicia) @freq_interval não é utilizado.
128 @freq_interval não é utilizado.

[ @freq_subday_type = ] freq_subday_type

Especifica as unidades para @freq_subday_interval. @freq_subday_type é int, e pode ser um desses valores.

Valor Descrição (unidade)
1 Na hora especificada
2 Segundos
4 Minutos
8 Horário

[ @freq_subday_interval = ] freq_subday_interval

O número de períodos de @freq_subday_type a ocorrer entre cada execução de uma tarefa. @freq_subday_interval é int, com um padrão de 0.

[ @freq_relative_interval = ] freq_relative_interval

Define ainda o @freq_interval quando @freq_type é definido para 32 (relativo mensal).

@freq_relative_interval é int, e pode ser um desses valores.

Valor Descrição (unidade)
1 First
2 Second
4 Terceiro
8 Quarto
16 Último

@freq_relative_interval indica a ocorrência do intervalo. Por exemplo, se @freq_relative_interval estiver definido para 2, @freq_type for definido para 32, e @freq_interval para 3, o trabalho agendado ocorreria na segunda terça-feira de cada mês.

[ @freq_recurrence_factor = ] freq_recurrence_factor

O número de semanas ou meses entre a execução agendada de um trabalho. @freq_recurrence_factor é int, com um padrão de 0. @freq_recurrence_factor é usado apenas se @freq_type estiver definido como 8, 16, ou 32.

[ @active_start_date = ] active_start_date

A data em que a execução do trabalho pode começar. @active_start_date é int, com um padrão de NULL. A data está formatada como yyyyMMdd. Se @active_start_date for definido, a data deve ser maior ou igual a 19900101.

Depois de criar o horário, reveja a data de início e confirme se é a data correta. Para mais informações, consulte a secção "Agendamento da Data de Início" em Criar e Anexar Agendamentos a Trabalhos.

[ @active_end_date = ] active_end_date

Data em que a execução do trabalho pode parar. @active_end_date é int, com um padrão de 99991231. A data está formatada como yyyyMMdd.

[ @active_start_time = ] active_start_time

O tempo em qualquer dia entre @active_start_date e @active_end_date para começar a execução do trabalho. @active_start_time é int, com um padrão de 000000. A hora está formatada como HHmmss num relógio de 24 horas.

[ @active_end_time = ] active_end_time

O tempo em qualquer dia entre active_start_date e @active_end_date para terminar a execução do trabalho. @active_end_time é int, com um padrão de 235959. A hora está formatada como HHmmss num relógio de 24 horas.

[ @owner_login_name = ] N'owner_login_name'

O nome do principal servidor que detém o horário. @owner_login_name é sysname, com um padrão de NULL, que indica que o horário pertence ao criador.

[ @automatic_post = ] automatic_post

Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Observações

Todos os empregos que usam o horário usam imediatamente as novas definições. No entanto, alterar um horário não impede os trabalhos que já estão a funcionar.

Permissions

Pode conceder EXECUTE permissões neste procedimento, mas essas permissões podem ser anuladas durante uma atualização do SQL Server.

Outros utilizadores devem receber um dos seguintes papéis fixos de base de dados SQL Server Agent na msdb base de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para detalhes sobre as permissões destes papéis, consulte Funções de Base de Dados Fixas do Agente SQL Server.

Só os membros do sysadmin podem modificar um horário pertencente a outro utilizador.

Examples

O exemplo seguinte altera o estado ativado do NightlyJobs anexo para 0 e define o proprietário para terrid.

USE msdb;
GO

EXECUTE dbo.sp_update_schedule
    @name = 'NightlyJobs',
    @enabled = 0,
    @owner_login_name = 'terrid';
GO