sp_stop_job (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

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

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@job_name [ = ] N'job_name'

O nome do trabalho a ser interrompido. @job_name é sysname, com um padrão de NULL.

@job_id [ = ] 'job_id'

O número de identificação do trabalho a ser interrompido. @job_id é uniqueidentifier, com um padrão de NULL.

@originating_server [ = ] N'originating_server'

O nome do servidor de origem. Se for especificado, todos os trabalhos multisservidor serão interrompidos. @originating_server é sysname, com um padrão de NULL. Especifique esse parâmetro somente ao chamar sp_stop_job em um servidor de destino.

O recurso Administração de vários servidores (MSX/TSX) não tem suporte na Instância Gerenciada SQL do Azure.

Observação

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

@server_name [ = ] N'server_name'

O nome do servidor de destino específico no qual um trabalho multisservidor será interrompido. @server_name é sysname, com um padrão de NULL. Especifique esse parâmetro somente ao chamar sp_stop_job um servidor de origem para um trabalho multisservidor.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

sp_stop_job envia um sinal de parada para o banco de dados. Alguns processos podem ser interrompidos imediatamente e alguns devem atingir um ponto estável (ou um ponto de entrada para o caminho do código) antes de poderem parar. Algumas instruções Transact-SQL de longa execução, como BACKUP, RESTOREe alguns DBCC comandos podem levar muito tempo para serem concluídas. Quando esses comandos estão em execução, pode demorar um pouco até que o trabalho seja cancelado. A interrupção de um trabalho faz com que uma entrada "Trabalho Cancelado" seja registrada no histórico de trabalho.

Se um trabalho estiver executando uma etapa do tipo CmdExec ou PowerShell, o processo que está sendo executado (por exemplo, MyProgram.exe) será forçado a terminar prematuramente. O fim prematuro pode resultar em comportamento imprevisível, como arquivos em uso pelo processo serem mantidos abertos. Assim, sp_stop_job deve ser usado somente em circunstâncias extremas se o trabalho contiver etapas do tipo CmdExec ou PowerShell.

Este procedimento armazenado compartilha o nome de com um objeto semelhante para o serviço Azure Elastic Jobs para Banco de sp_stop_job Dados SQL do Azure. Para obter informações sobre a versão de trabalhos elásticos, consulte jobs.sp_stop_job (Azure Elastic Jobs) (Transact-SQL).

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

Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Os membros de SQLAgentUserRole e SQLAgentReaderRole só podem interromper trabalhos que possuem. Os membros de SQLAgentOperatorRole podem interromper todos os trabalhos locais, incluindo trabalhos que pertencem a outros usuários. Os membros do sysadmin podem interromper todos os trabalhos locais e multisservidor.

Exemplos

O exemplo a seguir para um trabalho denominado Weekly Sales Data Backup.

USE msdb;
GO

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