Partilhar via


sp_attach_schedule (Transact-SQL)

Aplica-se: SQL Server

Define uma agenda para um trabalho.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_attach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

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.

Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.

@job_name [ = ] N'job_name'

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

Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.

@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.

Tanto @schedule_id quanto @schedule_name devem ser especificados, mas ambos não podem ser especificados.

@schedule_name [ = ] N'schedule_name'

O nome da agenda a ser definida para o trabalho. @schedule_name é sysname, com um padrão de NULL.

Tanto @schedule_id quanto @schedule_name devem ser especificados, mas ambos não podem ser especificados.

@automatic_post [ = ] automatic_post

@automatic_post é bit, com um padrão de 1.

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.

Esse procedimento armazenado deve ser executado no msdb banco de dados.

Permissões

Você pode conceder EXECUTE permissões nesse procedimento, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.

Outros usuários devem receber uma das seguintes funções de banco de dados fixas do msdb SQL Server Agent no banco de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

O proprietário do trabalho pode anexar um trabalho a um agendamento e desanexar um trabalho de um agendamento sem precisar ser o proprietário do agendamento. No entanto, um agendamento não poderá ser excluído se a desanexação o deixar sem trabalhos, a menos que o chamador seja o proprietário do agendamento.

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 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çã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