Partilhar via


sp_add_jobschedule (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

Cria um cronograma para um trabalho SQL Server Agent.

Transact-SQL convenções de sintaxe

Importante

No Azure SQL Managed Instance, a maioria dos recursos do SQL Server Agent, mas não todos, são suportados no momento. Consulte as diferenças entre o Azure SQL Managed Instance T-SQL e o SQL Server para mais 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 ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Número de identificação do trabalho ao qual o horário é adicionado. @job_id é um identificador único, com um padrão de NULL.

Ou @job_id ou @job_name devem ser especificados, mas nenhum dos dois pode ser especificado.

[ @job_name = ] N'job_name'

Nome do trabalho ao qual o horário é adicionado. @job_name é sysname, com o padrão de NULL.

Ou @job_id ou @job_name devem ser especificados, mas nenhum dos dois pode ser especificado.

[ @name = ] N'nome'

Nome da agenda. @name é sysname, sem padrão.

[ @enabled = ] ativado

Indica o estado atual do calendário. @enabled é tinyint, com o padrão de 1 (ativado). Se 0, o horário não está ativado. Quando o horário é desativado, o trabalho não é gerido.

[ @freq_type = ] freq_type

Valor que indica quando o trabalho deve ser executado. @freq_type é int, e pode ser um dos seguintes valores:

Valor Description
1 Uma vez
4 Diariamente
8 Weekly
16 Monthly
32 Mensalmente, em relação ao @freq_interval.
64 Executa quando o serviço SQL Server Agent iniciar.
128 Executa quando o computador estiver parado.

[ @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 seguinte:

Valor da @freq_type Efeito na @freq_interval
1 (uma vez) @freq_interval não é utilizado.
4 (diariamente) De @freq_interval em dias.
8 (semanal) @freq_interval é um ou mais dos seguintes (combinados com um OR operador lógico):

1 = Domingo
2 = Segunda-feira
4 = Terça-feira
8 = Quarta-feira
16 = Quinta-feira
32 = Sexta-feira
64 = Sábado
16 (mensalmente) No @freq_interval dia do mês.
32 (parente mensal) @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 = Dias úteis
10 = Dia de fim de semana
64 (quando o serviço SQL Server Agent inicia) @freq_interval não é utilizado.
128 @freq_interval não é utilizado.

[ @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 ocorrer entre cada execução do trabalho. @freq_subday_interval é int, com um padrão de 0.

[ @freq_relative_interval = ] freq_relative_interval

Define ainda o @freq_interval quando @freq_type é definido para 32 (relativo mensal).

@freq_relative_interval é int, e pode ser um destes valores:

Valor Descrição (unidade)
1 First
2 Second
4 Terceiro
8 Quarto
16 Último

@freq_relative_interval indica a ocorrência do intervalo. Por exemplo, se @freq_relative_interval estiver definido para 2, @freq_type for definido para 32, e @freq_interval para 3, o trabalho agendado ocorreria na segunda terça-feira de cada mês.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Número de semanas ou meses entre a execução prevista do trabalho. @freq_recurrence_factor é int, com um padrão de 0. @freq_recurrence_factor é usado apenas 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 está formatada como yyyyMMdd. Se @active_start_date for definido, a data deve ser maior ou igual a 19900101.

Depois de criar o horário, reveja a data de início e confirme se é a data correta. Para mais informações, consulte a secção "Agendamento da Data de Início" em Criar e Anexar Agendamentos a Trabalhos.

[ @active_end_date = ] active_end_date

A data em que a execução do trabalho pode parar. @active_end_date é int, com um padrão de 99991231. A data está formatada como yyyyMMdd.

[ @active_start_time = ] active_start_time

O tempo em qualquer dia entre @active_start_date e @active_end_date para começar a execução do trabalho. @active_start_time é int, com um padrão de 000000. A hora está formatada como HHmmss num 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 terminar a execução do trabalho. @active_end_time é int, com um padrão de 235959. A hora está formatada como HHmmss num relógio de 24 horas.

[ @schedule_id = ] schedule_id SAÍDA

Número de identificação do horário atribuído ao horário se este for criado com sucesso. @schedule_id é um parâmetro OUTPUT do tipo int.

[ @automatic_post = ] automatic_post

Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.

[ @schedule_uid = ] 'schedule_uid' SAÍDA

Um identificador único para o horário. @schedule_uid é um parâmetro OUTPUT do tipo identificador único.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

Os horários de trabalho podem agora ser geridos independentemente dos trabalhos. Para adicionar um horário a um trabalho, use sp_add_schedule para criar o horário e sp_attach_schedule anexá-lo a um trabalho.

Permissions

Pode conceder EXECUTE permissões neste procedimento, mas essas permissões podem ser anuladas durante uma atualização do SQL Server.

Outros utilizadores devem receber um dos seguintes papéis fixos de base de dados SQL Server Agent na msdb base de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para detalhes sobre as permissões destes papéis, consulte Funções de Base de Dados Fixas do Agente SQL Server.

Examples

O exemplo seguinte atribui um horário de tarefas a SaturdayReports, que é executado todos os sábados às 2:00 da manhã.

EXECUTE 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