Partilhar via


sp_add_schedule (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

Cria uma agenda que pode ser usada por qualquer número de trabalhos.

Transact-SQL convenções de sintaxe

Sintaxe

sp_add_schedule
    [ @schedule_name = ] 'schedule_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 = ] 'owner_login_name' ]
    [ , [ @schedule_uid = ] schedule_uid OUTPUT ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @originating_server = ] server_name ] /* internal */
[ ; ]

Argumentos

@schedule_name [ = ] «schedule_name»

O nome da agenda. @schedule_name é sysname, sem padrão.

@enabled [ = ] ativado

Indica o status atual da agenda. @enabled é tinyint, com um padrão de 1 (enabled). Se 0o , o agendamento não estiver habilitado. Quando o agendamento não está habilitado, nenhum trabalho é executado nesse agendamento.

@freq_type [ = ] freq_type

Um valor que indica quando um trabalho deve ser executado. @freq_type é int, com um padrão de 0, e pode ser um desses valores.

Valor Descrição
1 Uma vez
4 Diariamente
8 Semanalmente
16 Mensalmente
32 Mensal, em relação a @freq_interval
64 Executar quando o serviço SQL Server Agent é iniciado
128 Executar quando o computador está inativo (sem suporte na Instância Gerenciada SQL do Azure)

@freq_interval [ = ] @freq_interval

Os dias em que um trabalho é executado. @freq_interval é int, com um padrão de 1, e depende do valor de @freq_type.

Valor da @freq_type Efeito na @freq_interval
1 (uma vez) @freq_interval não é utilizado.
4 (diário) A cada @freq_interval 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 (mensal) No @freq_interval dia do mês.
32 (parente mensal) @freq_interval é uma das 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 = Dia da semana
10 = Dia de fim de semana
64 (quando o serviço SQLServerAgent é iniciado) @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, com um padrão de 0, e pode ser um desses valores.

Valor Descrição (unidade)
1 No momento especificado
2 Segundos
4 Minutos
8 Horário

@freq_subday_interval [ = ] freq_subday_interval

O número de @freq_subday_type períodos a ocorrer entre cada execução de um trabalho. @freq_subday_interval é int, com um padrão de 0. O intervalo deve ter pelo menos 10 segundos. @freq_subday_interval é ignorado nos casos em que @freq_subday_type é igual a 1.

@freq_relative_interval [ = ] freq_relative_interval

A ocorrência de @freq_interval em cada mês, se @freq_interval for 32 (mensal relativo). @freq_relative_interval é int, com um padrão de 0, e pode ser um desses valores. @freq_relative_interval é ignorado nos casos em que @freq_type não é igual a 32.

Valor Descrição (unidade)
1 Primeiro
2 Segundo
4 Terceiro
8 Quarta
16 Último

@freq_recurrence_factor [ = ] freq_recurrence_fator

O número de semanas ou meses entre a execução programada de um trabalho. @freq_recurrence_fator é utilizado apenas se @freq_type for 8, 16ou 32. @freq_recurrence_fator é int, com um padrão de 0.

[ @active_start_date = ] ative_start_date

A data em que a execução de um trabalho pode começar. @ative_start_date é int, com um padrão de NULL, que indica a data de hoje. A data está formatada como yyyyMMdd. Se @ative_start_date não NULLfor, a data deve ser maior ou igual a 19900101.

Depois que a agenda for criada, revise a data de início e confirme se é a data correta. Para obter mais informações, consulte a seção "Agendando data de início" em Criar e anexar agendas a trabalhos.

Para agendas semanais ou mensais, o Agente ignora se @ative_start_date está no passado e, em vez disso, usa a data atual. Quando uma agenda do SQL Server Agent é criada usando sp_add_schedule , há uma opção para especificar o parâmetro @ative_start_date que é a data de início da execução do trabalho. Se o tipo de agenda for semanal ou mensal e o parâmetro @ative_start_date for definido como uma data no passado, o parâmetro @ative_start_date será ignorado e a data atual será usada para @ative_start_date.

[ @active_end_date = ] ative_end_date

A data em que a execução de um trabalho pode parar. @ative_end_date é int, com um padrão de , que indica 31 de dezembro de 999912319999. Formatado como yyyyMMdd.

@active_start_time [ = ] ative_start_time

O tempo em qualquer dia entre @ative_start_date e @ative_end_date para iniciar a execução de um trabalho. @ative_start_time é int, com um padrão de , que indica 12:00:00 em um relógio de 24 horas, e deve ser inserido 000000usando o formulário HHmmss.

@active_end_time [ = ] ative_end_time

O tempo em qualquer dia entre @ative_start_date e @ative_end_date para terminar a execução de um trabalho. @ative_end_time é int, com um padrão de , que indica 23:59:59 em um relógio de 24 horas, e deve ser inserido 235959usando o formulário HHmmss.

@owner_login_name [ = ] «owner_login_name»

O nome da entidade de segurança do servidor proprietária da agenda. @owner_login_name é sysname, com um padrão de NULL, que indica que a agenda é de propriedade do criador.

@schedule_uid [ = ] schedule_uid SAÍDA

Um identificador exclusivo para a agenda. @schedule_uid é uma variável do tipo uniqueidentifier.

@schedule_id [ = ] schedule_id SAÍDA

Um identificador para a agenda. @schedule_id é uma variável do tipo int.

@originating_server [ = ] server_name

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).

Conjunto de resultados

Nenhum.

Observações

O SQL Server Management Studio fornece uma maneira gráfica fácil de gerenciar trabalhos e é a maneira recomendada de criar e gerenciar a infraestrutura de trabalho.

Permissões

Você pode conceder permissões de EXECUTE neste procedimento, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.

Outros usuários devem receber uma das seguintes funções de banco de dados fixas do SQL Server Agent no banco de dados msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Exemplos

Um. Criar uma agenda

O exemplo a seguir cria uma agenda chamada RunOnce. A agenda é executada uma vez, no 23:30 dia em que a agenda é criada.

USE msdb;
GO

EXECUTE dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000;
GO

B. Criar uma agenda, anexando a agenda a vários trabalhos

O exemplo a seguir cria uma agenda chamada NightlyJobs. Os trabalhos que usam esse agendamento são executados todos os dias quando a hora no servidor é 01:00. O exemplo anexa o cronograma ao trabalho BackupDatabase e ao trabalho RunReports.

Observação

Este exemplo pressupõe que o trabalho BackupDatabase e o trabalho RunReports já existem.

USE msdb;
GO

EXECUTE sp_add_schedule
    @schedule_name = N'NightlyJobs',
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000;
GO

EXECUTE sp_attach_schedule
    @job_name = N'BackupDatabase',
    @schedule_name = N'NightlyJobs';
GO

EXECUTE sp_attach_schedule
    @job_name = N'RunReports',
    @schedule_name = N'NightlyJobs';
GO