Partilhar via


sp_attach_schedule (Transact-SQL)

Define uma agenda para um trabalho.

Ícone de vínculo de tópico Convenções da 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 para o qual a agenda é adicionada. job_id é uniqueidentifier, com um padrão de NULL.

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

    ObservaçãoObservação

    É necessário especificar job_id ou 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 de NULL.

  • [ @schedule_name = ] 'schedule_name'
    O nome da agenda a ser definida para o trabalho. schedule_name é sysname, com um padrão de 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

Observe que o proprietário do trabalho pode anexar e desanexar o trabalho de uma agenda sem precisar ser também o proprietário da agenda. No entanto, uma agenda não pode ser excluída se a desanexação deixá-la sem trabalhos, a menos que o chamador seja o proprietário da agenda.

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 uma agenda chamada 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

sp_add_schedule (Transact-SQL)

sp_detach_schedule (Transact-SQL)

sp_delete_schedule (Transact-SQL)