Compartilhar via


sp_attach_schedule (Transact-SQL)

Define uma agenda para um trabalho.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_attach_schedule
     { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } , 
     { [ @schedule_id = ] schedule_id 
     | [ @schedule_name = ] 'schedule_name' }

Argumentos

  • [ @job_id= ] job_id
    O número de identificação do trabalho ao qual a agenda será adicionada. job_idé uniqueidentifier, com um padrão NULL.

  • [ @job_name = ] 'job_name'
    O nome do trabalho ao qual a agenda será adicionada. job_nameé sysname, com um padrão NULL.

    ObservaçãoObservação

    É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo.

  • [ @schedule_id = ] schedule_id
    O número de identificação da agenda a ser definida para o trabalho. schedule_idé int, com um padrão NULL.

  • [ @schedule_name = ] 'schedule_name'
    O nome da agenda a ser definida para o trabalho. schedule_nameé sysname, com um padrão NULL.

    ObservaçãoObservação

    É necessário especificar a schedule_id ou o schedule_name, mas não é possível especificar ambos ao mesmo tempo.

Comentários

A agenda e o trabalho devem ter o mesmo proprietário.

Uma agenda pode ser definida para mais de um trabalho. Um trabalho pode ser executado em mais de uma agenda.

Este procedimento armazenado deve ser executado a partir do banco de dados msdb.

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.

O SQL Server verifica se o usuário possui o trabalho e a agenda.

Exemplos

O exemplo a seguir cria um agendamento denominado NightlyJobs. Os trabalhos que usam esse agendamento 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á 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