Partilhar via


sp_add_schedule (Transact-SQL)

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

Ícone de vínculo de tópicoConvenções de 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 estado atual da agenda. enabledé tinyint, com um padrão 1 (habilitado). Se for 0, o agendamento não estará 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 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 para freq_subday_interval. freq_subday_typeé int, com um padrão de 0, e pode ser 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. Observe que o intervalo especificado deve ser maior que 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, analisa a data de início e confirma que é a data 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. Não há 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 infra-estrutura 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çã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

Histórico de alterações

Conteúdo atualizado

O parâmetro de data de início inclui informações sobre como confirmar a data de início depois que uma agenda é criada.