sp_add_schedule (Transact-SQL)
Cria uma agenda que pode ser usada por vários trabalhos.
Convenções da sintaxe 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 = ] enabled
Indica o status atual da agenda. enabledé tinyint, com um padrão de 1 (habilitado). Se for 0, o agendamento não está habilitado. Quando o agendamento não está habilitado, nenhum trabalho é executado nele.[ @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 ter um destes valores.Valor
Descrição
1
Uma vez
4
Diariamente
8
Semanalmente
16
Mensalmente
32
Mensalmente, relativo a freq_interval
64
Executado quando o serviço SQLServerAgent é iniciado
128
Executado quando o computador está ocioso
[ @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 de freq_type
Efeito em freq_interval
1 (uma vez)
freq_interval não é usado.
4 (diariamente)
Todos os dias de freq_interval.
8 (semanalmente).
freq_interval é um ou mais dos seguintes (combinados com um operador lógico OR):
1 = domingo
2 = segunda-feira
4 = terça-feira
8 = quarta-feira
16 = quinta-feira
32 = Sexta-feira
64 = Sábado
16 (mensalmente)
No dia freq_interval do mês
32 (mensal relativo)
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 = dia da semana
10 = 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 do freq_subday_interval. freq_subday_typeé int, com um padrão de 0 e pode ter um destes valores.Valor
Descrição (unidade)
0x1
Na hora especificada
0x2
Segundos
0x4
Minutos
0x8
Horas
[ @freq_subday_interval = ] freq_subday_interval
O número de períodos de freq_subday_type que devem ocorrer entre cada execução de um trabalho. freq_subday_intervalé int, com um padrão de 0. Observação: o intervalo deve ser maior que 10 segundos. freq_subday_interval é ignorado nos casos onde freq_subday_type é igual a 1.[ @freq_relative_interval = ] freq_relative_interval
A ocorrência de um trabalho 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 ter um destes valores. freq_relative_interval é ignorado nos casos onde freq_type não é igual a 32.Valor
Descrição (unidade)
1
First
2
Segundo
4
Terceiro
8
Quarto
16
Último
[ @freq_recurrence_factor = ] freq_recurrence_factor
O número de semanas ou meses entre execuções agendadas de um trabalho. freq_recurrence_factor será usado apenas se freq_type for 8, 16ou 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 NULL, que indica a data de hoje. A data é formatada como AAAAMMDD. Se active_start_date não for NULL, a data deverá ser maior ou igual a 19900101.Depois que a agenda é criada, analise a data de início e confirme se a data está correta. Para obter mais informações, consulte a seção "Agendando datas de início" em Criar e anexar agendas para trabalhos.
Para agendamentos semanais ou mensais, o agente ignora se active_start_date está no passado e usa a data atual. Quando um agendamento do SQL Agent é criado usando o 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 será iniciada. Se o tipo de agendamento for semanal ou mensal e o parâmetro active_start_date for 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 99991231, que indica 31 de dezembro de 9999. Formatada como AAAAMMDD.[ @active_start_time = ] active_start_time
A hora 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 000000, que indica 00h00 em um relógio de 24 horas e deve ser inserido com o formato HHMMSS.[ @active_end_time = ] active_end_time
A hora 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 235959, que indica 23h59m59s em um relógio de 24 horas e deve ser inserido com o formato 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 a agenda é de propriedade do criador.[ @schedule_uid= ] schedule_uidOUTPUT
Um identificador exclusivo da agenda. schedule_uid é uma variável de tipo uniqueidentifier.[ @schedule_id= ] schedule_idOUTPUT
Um identificador da agenda. schedule_id é uma variável de tipo int.[ @originating_server= ] server_name
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Conjuntos de resultados
Nenhum
Comentários
O SQL Server Management Studio gerencia trabalhos de forma fácil e com representação gráfica. Além disso, ele é recomendado para criar e gerenciar a infraestrutura de trabalhos.
Permissões
Por padrão, os membros da função de servidor fixa sysadmin podem executar este procedimento armazenado. Deve ser concedida a outros usuários 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
A.Criando uma agenda
O exemplo a seguir cria uma agenda chamada 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.Criando uma agenda e anexando-a 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
Consulte também
Referência
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)