sp_add_schedule (Transact-SQL)
Cria uma agenda que pode ser usada por vários trabalhos.
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 estado atual da agenda. enabledé tinyint, com um padrão 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 ser um destes valores.Valor
Descrição
1
Uma vez
4
Diariamente
8
Semanalmente
16
Mensalmente
32
Mensalmente, relativo ao 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 o trabalho é executado. freq_interval é int, com um padrão 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)
A cada freq_interval dias.
8 (semanalmente).
freq_interval é um ou mais dos seguintes (combinado 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 do 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 de freq_subday_interval. freq_subday_typeé int, com um padrão 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 freq_subday_type que devem ocorrer entre cada execução de um trabalho. freq_subday_intervalé int, com um padrão de 0. freq_subday_interval é ignorado quando freq_subday_type é igual a 1. Observação: o intervalo deve ter mais de 10 segundos.[ @freq_relative_interval = ] freq_relative_interval
Uma ocorrência de trabalho de freq_interval em cada mês, se freq_interval for 32 (relativo ao mês). freq_relative_intervalé int, com um padrão 0, e pode ser um destes valores. freq_relative_interval é ignorado quando freq_type não é igual a 32.Valor
Descrição (unidade)
1
Primeiro
2
Segundo
4
Terceiro
8
Quarto
16
Último
[ @freq_recurrence_factor = ] freq_recurrence_factor
O número de semanas ou meses entre a execução agendada 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 NULL, que indica a data atual. 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 Criando e anexando agendas a trabalhos.
[ @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 de qualquer dia entre active_start_date e active_end_date para começar a execução de um trabalho. active_start_timeé int, com um padrão 000000, que indica 12:00:00 A.M. em um relógio de 24 horas, e deve ser inserida usando o formato HHMMSS.[ @active_end_time = ] active_end_time
A hora de 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 235959, que indica 11:59:59 P.M. em um relógio de 24 horas, e deve ser inserida usando o formato HHMMSS.[ @owner_login_name= ] 'owner_login_name'
O nome da entidade de servidor que possui a agenda. owner_login_name is sysname, com um padrão NULL, indicando que a agenda pertence ao criador.[ @schedule_uid= ] schedule_uidOUTPUT
Um identificador exclusivo para a agenda. schedule_uid é uma variável do tipo uniqueidentifier.[ @schedule_id= ] schedule_idOUTPUT
Um identificador para a agenda. schedule_id é uma variável do 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, 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á existam. |
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