sp_add_jobschedule (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Cria um agendamento para um trabalho do SQL Server Agent.
Convenções de sintaxe de Transact-SQL
Importante
Atualmente, na Instância Gerenciada de SQL do Azure, a maioria dos recursos do SQL Server Agent é compatível, mas não todos. Confira Diferenças entre o T-SQL da Instância Gerenciada de SQL do Azure e o SQL Server para obter detalhes.
Sintaxe
sp_add_jobschedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
, [ @name = ] N'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 ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @automatic_post = ] automatic_post ]
[ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]
Argumentos
@job_id [ = ] 'job_id'
Número de identificação do trabalho para o qual a agenda é adicionada. @job_id é uniqueidentifier, com um padrão de NULL
.
Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.
@job_name [ = ] N'job_name'
Nome do trabalho ao qual a agenda é adicionada. @job_name é sysname, com um padrão de NULL
.
Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.
[ @name = ] N'name'
Nome da agenda. @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 está desabilitado, o trabalho não é executado.
@freq_type [ = ] freq_type
Valor que indica quando o trabalho será executado. @freq_type é int e pode ser um dos seguintes 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. |
@freq_interval [ = ] freq_interval
Dia em que o trabalho é executado. @freq_interval é int, com um padrão de 0
, e depende do valor de @freq_type conforme indicado na tabela a seguir:
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 SQL Server Agent é 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 e pode ser um destes valores:
Valor | Descrição (unidade) |
---|---|
1 |
Na hora especificada |
2 |
Segundos |
4 |
Minutos |
8 |
Horário |
@freq_subday_interval [ = ] freq_subday_interval
Número de períodos de @freq_subday_type a serem observados entre cada execução do trabalho. @freq_subday_interval é int, com um padrão de 0
.
@freq_relative_interval [ = ] freq_relative_interval
Define ainda mais o @freq_interval quando @freq_type é definido como 32
(relativo mensal).
@freq_relative_interval é int e pode ser um destes valores:
Valor | Descrição (unidade) |
---|---|
1 |
Primeiro |
2 |
Segundo |
4 |
Terceiro |
8 |
Quarto |
16 |
Last |
@freq_relative_interval indica a ocorrência do intervalo. Por exemplo, se @freq_relative_interval estiver definido como 2
, @freq_type estiver definido como 32
e @freq_interval estiver definido como 3
, o trabalho agendado ocorrerá na segunda terça-feira de cada mês.
@freq_recurrence_factor [ = ] freq_recurrence_factor
Número de semanas ou meses entre execuções agendadas do trabalho. @freq_recurrence_factor é int, com um padrão de 0
. @freq_recurrence_factor é usado somente 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 é formatada como yyyyMMdd
. Se @active_start_date for definido, 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.
@active_end_date [ = ] active_end_date
A data em que a execução do trabalho pode ser interrompida. @active_end_date é int, com um padrão de 99991231
. A data é formatada como yyyyMMdd
.
@active_start_time [ = ] active_start_time
O horário em qualquer dia entre @active_start_date e @active_end_date para iniciar a execução do trabalho. @active_start_time é int, com um padrão de 000000
. A hora é formatada como HHmmss
em um 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 encerrar a execução do trabalho. @active_end_time é int, com um padrão de 235959
. A hora é formatada como HHmmss
em um relógio de 24 horas.
@schedule_id [ = ] schedule_id SAÍDA
Número de identificação da agenda atribuído à agenda se ela for criada com êxito. @schedule_id é um parâmetro OUTPUT do tipo int.
@automatic_post [ = ] automatic_post
Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
@schedule_uid [ = ] SAÍDA 'schedule_uid'
Um identificador exclusivo da agenda. @schedule_uid é um parâmetro OUTPUT do tipo uniqueidentifier.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
As agendas de trabalho podem ser gerenciadas independentemente dos trabalhos. Para adicionar um agendamento a um trabalho, use sp_add_schedule
para criar o agendamento e sp_attach_schedule
anexar o agendamento a um 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
O exemplo a seguir atribui uma agenda de trabalho a SaturdayReports
, que é executada todos os sábados às 2:00 AM.
EXEC msdb.dbo.sp_add_jobschedule
@job_name = N'SaturdayReports', -- Job name
@name = N'Weekly_Sat_2AM', -- Schedule name
@freq_type = 8, -- Weekly
@freq_interval = 64, -- Saturday
@freq_recurrence_factor = 1, -- every week
@active_start_time = 20000 -- 2:00 AM
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_schedule (Transact-SQL)
- sp_update_schedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)