Partilhar via


sp_add_schedule (Transact-SQL)

Cria uma agenda que pode ser usada por vários trabalhos.

Ícone de vínculo de tópico 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çãoObservaçã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)

Conceitos

Criar e anexar agendas para trabalhos

Agendar um trabalho

Criar uma agenda