sp_attach_schedule (Transact-SQL)

Aplica-se a: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.

Devem ser especificados @job_id ou @job_name , 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.

Devem ser especificados @job_id ou @job_name , 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.

Devem ser especificados @schedule_id ou @schedule_name , 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.

Devem ser especificados @schedule_id ou @schedule_name , 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 a msdb partir do banco de dados.

Permissões

Esse procedimento armazenado pertence à função db_owner . Você pode conceder EXECUTE permissões para qualquer usuário, 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 msdb do SQL Server Agent no banco de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

O proprietário do trabalho pode anexar um trabalho a uma agenda e desanexar um 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 a deixar 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 é o proprietário do trabalho e da 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