sp_add_schedule (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Cria uma agenda que pode ser usada por vários trabalhos.
Convenções de sintaxe de Transact-SQL
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 [ = ] habilitado
Indica o status atual da agenda. @enabled é tinyint, com um padrão de 1
(enabled). Se 0
, o agendamento não está 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 |
Diário |
8 |
Semanal |
16 |
Mensal |
32 |
Mensalmente, em relação a @freq_interval |
64 |
Executar quando o serviço SQL Server Agent for iniciado |
128 |
Executar quando o computador estiver ocioso (sem suporte na Instância Gerenciada de 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 do @freq_type | Efeito na @freq_interval |
---|---|
1 (uma vez) |
@freq_interval não é usado. |
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 = Domingo2 = Segunda-feira4 = Terça-feira8 = Quarta-feira16 = Quinta-feira32 = Sexta-feira64 = Sábado |
16 (mensal) |
No @freq_interval dia do mês. |
32 (parente mensal) |
@freq_interval é um dos seguintes:1 = Domingo2 = Segunda-feira3 = Terça-feira4 = Quarta-feira5 = Quinta-feira6 = Sexta-feira7 = Sábado8 = Dia9 = Dia da semana10 = Dia de fim de semana |
64 (quando o serviço SQLServerAgent é iniciado) |
@freq_interval não é usado. |
128 |
@freq_interval não é usado. |
@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 |
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 um trabalho. @freq_subday_interval é int, com um padrão de 0
. O intervalo deve ter pelo menos 10 segundos de duração. @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 de um trabalho em cada mês, se @freq_interval for 32 (parente mensal). @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 |
Quarto |
16 |
Last |
@freq_recurrence_factor [ = ] freq_recurrence_factor
O número de semanas ou meses entre execuções agendadas de um trabalho. @freq_recurrence_factor é usado somente se @freq_type for 8
, 16
, ou 32
. @freq_recurrence_factor é int, com um padrão de 0
.
@active_start_date [ = ] active_start_date
A data na qual a execução de um trabalho pode começar. @active_start_date é int, com um padrão de , que indica a data de NULL
hoje. A data é formatada como yyyyMMdd
. Se @active_start_date não NULL
for, a data deve ser maior ou igual a 19900101.
Depois que o agendamento for criado, revise a data de início e confirme se é a data correta. Para obter mais informações, consulte a seção "Data de início do agendamento" em Criar e anexar agendas a trabalhos.
Para agendamentos semanais ou mensais, o Agente ignora se @active_start_date está no passado e, em vez disso, usa a data atual. Quando um agendamento do SQL Server Agent é criado usando sp_add_schedule
, há uma opção para especificar o parâmetro @active_start_date que é a data em que a execução do trabalho começa. Se o tipo de programação for semanal ou mensal e o parâmetro @active_start_date estiver definido como uma data no passado, o parâmetro @active_start_date será ignorado e a data atual será usada para @active_start_date.
@active_end_date [ = ] active_end_date
A data na qual a execução de um trabalho pode parar. @active_end_date é int, com um padrão de , que indica 31 de dezembro de 99991231
9999. Formatado como yyyyMMdd
.
@active_start_time [ = ] active_start_time
O tempo em qualquer dia entre @active_start_date e @active_end_date para iniciar a execução de um trabalho. @active_start_time é int, com um padrão de , que indica 12:00:00 A.M. em um relógio de 24 horas, e deve ser inserido 000000
usando o formulário HHmmss
.
@active_end_time [ = ] active_end_time
O tempo em qualquer dia entre @active_start_date e @active_end_date para terminar a execução de um trabalho. @active_end_time é int, com um padrão de , que indica 23:59:59 em um relógio de 24 horas, e deve ser inserido 235959
usando o formulário HHmmss
.
@owner_login_name [ = ] 'owner_login_name'
O nome da entidade de segurança do servidor que possui a agenda. @owner_login_name é sysname, com um padrão de NULL
, que indica que o agendamento pertence ao criador.
@schedule_uid [ = ] schedule_uid SAÍDA
Um identificador exclusivo da agenda. @schedule_uid é uma variável do tipo uniqueidentifier.
@schedule_id [ = ] schedule_id SAÍDA
Um identificador da agenda. @schedule_id é uma variável do tipo int.
[ @originating_server = ] server_name
Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
O SQL Server Management Studio fornece um modo gráfico fácil de gerenciar trabalhos e é o modo recomendado de criar e gerenciar a infra-estrutura de trabalho.
Permissões
Você pode conceder EXECUTE
permissões nesse 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 msdb
SQL Server Agent no banco de dados:
- 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
R. Criar um agendamento
O exemplo a seguir cria uma agenda chamado RunOnce
. A agenda é executada uma vez, às 23:30
, no dia em que é criada.
USE msdb;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000;
GO
B. Crie um agendamento, anexando o agendamento a vários trabalhos
O exemplo a seguir cria uma agenda chamado NightlyJobs
. Os trabalhos que usam essa agenda são executados diariamente quando a hora no servidor é 01:00
. O exemplo anexa a agenda ao trabalho BackupDatabase
e ao trabalho RunReports
.
Observação
Este exemplo supõe que o trabalho BackupDatabase
e o trabalho RunReports
já existem.
USE msdb;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs';
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs';
GO
Conteúdo relacionado
- Criar e anexar agendas para trabalhos
- Agendar um trabalho
- Create a Schedule
- Procedimentos armazenados do SQL Server Agent (Transact-SQL)
- sp_add_jobschedule (Transact-SQL)
- sp_update_schedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)