Partilhar via


sp_stop_job (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

Instrui o SQL Server Agent a parar a execução de um trabalho.

Transact-SQL convenções de sintaxe

Sintaxe

sp_stop_job
    [ [ @job_name = ] N'job_name' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @server_name = ] N'server_name' ]
[ ; ]

Arguments

[ @job_name = ] N'job_name'

O nome do trabalho para parar. @job_name é sysname, com o padrão de NULL.

[ @job_id = ] 'job_id'

O número de identificação do trabalho para parar. @job_id é um identificador único, com um padrão de NULL.

[ @originating_server = ] N'originating_server'

O nome do servidor de origem. Se especificado, todos os trabalhos multiservidor são parados. @originating_server é sysname, com um padrão de NULL. Especifique este parâmetro apenas ao chamar sp_stop_job num servidor alvo.

A funcionalidade Multi Server Administration (MSX/TSX) não é suportada no Azure SQL Managed Instance.

Observação

Apenas um dos três primeiros parâmetros pode ser especificado.

[ @server_name = ] N'server_name'

O nome do servidor alvo específico onde se deve parar um trabalho multiservidor. @server_name é sysname, com um padrão de NULL. Especifique este parâmetro apenas ao chamar sp_stop_job um servidor de origem para um trabalho multiservidor.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

sp_stop_job Envia um sinal de paragem para a base de dados. Alguns processos podem ser parados imediatamente e outros têm de atingir um ponto estável (ou um ponto de entrada no caminho do código) antes de poderem parar. Algumas instruções de Transact-SQL de longa duração, como BACKUP, RESTORE, e alguns DBCC comandos, podem demorar muito tempo a ser concluídas. Quando estes comandos estão a correr, pode demorar algum tempo até o trabalho ser cancelado. Parar um trabalho faz com que uma entrada "Emprego Cancelado" seja registada no histórico do trabalho.

Se um trabalho estiver atualmente a executar uma etapa do tipo CmdExec ou PowerShell, o processo que está a ser executado (por exemplo, MyProgram.exe) é forçado a terminar prematuramente. O término prematuro pode resultar em comportamentos imprevisíveis, como ficheiros em uso pelo processo serem mantidos abertos. Assim, sp_stop_job deve ser usado apenas em circunstâncias extremas se o trabalho contiver passos do tipo CmdExec ou PowerShell.

Este procedimento armazenado partilha o nome de sp_stop_job com um objeto semelhante para o serviço Azure Elastic Jobs para Azure SQL Database. Para informações sobre a versão do Elastic Jobs, veja jobs.sp_stop_job (Azure Elastic Jobs).

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

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

Os membros do SQLAgentUserRole e SQLAgentReaderRole só podem parar trabalhos que possuem. Os membros do SQLAgentOperatorRole podem parar todos os trabalhos locais, incluindo os que pertencem a outros utilizadores. Os membros do sysadmin podem parar todos os trabalhos locais e multiservidor.

Examples

O exemplo seguinte para um trabalho chamado Weekly Sales Data Backup.

USE msdb;
GO

EXECUTE dbo.sp_stop_job N'Weekly Sales Data Backup';
GO