Partilhar via


sp_delete_schedule (Transact-SQL)

Aplica-se a:SQL Server

Apaga um horário.

Transact-SQL convenções de sintaxe

Sintaxe

sp_delete_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @force_delete = ] force_delete ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Arguments

[ @schedule_id = ] schedule_id

O número de identificação do horário a eliminar. @schedule_id é int, com um padrão de NULL.

Ou @schedule_id ou @schedule_name devem ser especificados, mas nenhum dos dois pode ser especificado.

[ @schedule_name = ] N'schedule_name'

O nome do horário para apagar. @schedule_name é sysname, com um padrão de NULL.

Ou @schedule_id ou @schedule_name devem ser especificados, mas nenhum dos dois pode ser especificado.

[ @force_delete = ] force_delete

Especifica se o procedimento deve falhar se o cronograma estiver associado a um trabalho. @force_delete é bit, com um padrão de 0.

  • Quando @force_delete é 0, o procedimento armazenado falha se o agendamento estiver associado a uma tarefa.
  • Quando @force_delete é 1, o horário é eliminado independentemente de estar associado a um trabalho.

[ @automatic_post = ] automatic_post

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

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

Por defeito, um horário não pode ser eliminado se estiver associado a um trabalho. Para eliminar um horário associado a uma tarefa, especifique um valor de 1 para @force_delete. Eliminar um horário não impede trabalhos que estão a correr no momento.

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

O dono do trabalho pode associar um trabalho a um horário e separar um trabalho de um horário sem ter de ser também o dono do horário. No entanto, um horário não pode ser apagado se o destacamento o deixar sem empregos, a menos que o responsável seja o proprietário do horário.

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

Apenas os membros do papel de sysadmin podem eliminar um cronograma de tarefas que pertence a outro utilizador.

Examples

A. Eliminar uma agenda

O exemplo seguinte elimina o horário NightlyJobs. Se o horário estiver associado a qualquer trabalho, o exemplo não apaga o horário.

USE msdb;
GO

EXECUTE dbo.sp_delete_schedule @schedule_name = N'NightlyJobs';
GO

B. Apagar um horário associado a um trabalho

O exemplo seguinte elimina o horário RunOnce, independentemente de o horário estar associado a um trabalho.

USE msdb;
GO

EXECUTE dbo.sp_delete_schedule
    @schedule_name = 'RunOnce',
    @force_delete = 1;
GO