sp_stop_job (Transact-SQL)sp_stop_job (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

指示SQL ServerSQL Serverエージェント ジョブの実行を停止します。Instructs SQL ServerSQL Server Agent to stop the execution of a job.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


      [@job_name =] 'job_name'  
    | [@job_id =] job_id   
    | [@originating_server =] 'master_server'  
    | [@server_name =] 'target_server'  


[ @job_name = ] 'job_name' 停止するジョブの名前。[ @job_name = ] 'job_name' The name of the job to stop. job_namesysname、既定値は NULL です。job_name is sysname, with a default of NULL.

[ @job_id = ] job_id 停止するジョブの識別番号。[ @job_id = ] job_id The identification number of the job to stop. job_iduniqueidentifier、既定値は NULL です。job_id is uniqueidentifier, with a default of NULL.

[ @originating_server = ] 'master_server' マスター サーバーの名前。[ @originating_server = ] 'master_server' The name of the master server. 指定した場合、すべてのマルチサーバー ジョブが停止します。If specified, all multiserver jobs are stopped. master_servernvarchar (128) 、既定値は NULL です。master_server is nvarchar(128), with a default of NULL. 呼び出すときにのみ、このパラメーターを指定sp_stop_jobをターゲット サーバーにします。Specify this parameter only when calling sp_stop_job at a target server.


最初の 3 つのパラメーターは、いずれか 1 つだけを指定できます。Only one of the first three parameters can be specified.

[ @server_name = ] 'target_server' マルチ サーバー ジョブを停止する特定の対象サーバーの名前。[ @server_name = ] 'target_server' The name of the specific target server on which to stop a multiserver job. target_servernvarchar (128) 、既定値は NULL です。target_server is nvarchar(128), with a default of NULL. 呼び出すときにのみ、このパラメーターを指定sp_stop_jobマルチ サーバー ジョブのマスター サーバーでします。Specify this parameter only when calling sp_stop_job at a master server for a multiserver job.

リターン コードの値Return Code Values

0 (成功) または1 (失敗)0 (success) or 1 (failure)

結果セットResult Sets



sp_stop_job停止信号をデータベースに送信します。sp_stop_job sends a stop signal to the database. 一部のプロセスをすぐに停止して、いくつかは、安定したポイント (または、コード パスのエントリ ポイント) に到達する必要があります未然に防ぐことができます。Some processes can be stopped immediately and some must reach a stable point (or an entry point to the code path) before they can stop. いくつか実行時間の長いTransact-SQLTransact-SQLバックアップ、復元、および一部の DBCC コマンドなどのステートメントは完了までに時間かかることができます。Some long-running Transact-SQLTransact-SQL statements such as BACKUP, RESTORE, and some DBCC commands can take a long time to finish. これらが実行されている場合に、ジョブが取り消されるまでは、しばらくがかかる場合があります。When these are running, it may take a while before the job is canceled. ジョブを停止すると、ジョブが取り消されたことを示すエントリがジョブ履歴に記録されます。Stopping a job causes a "Job Canceled" entry to be recorded in the job history.

ジョブが現在型のステップを実行するかどうかはCmdExecまたはPowerShell、実行中のプロセス (MyProgram.exe など) は途中で強制終了します。If a job is currently executing a step of type CmdExec or PowerShell, the process being run (for example, MyProgram.exe) is forced to end prematurely. 途中で終了した場合、そのプロセスによって使用されていたファイルが開いたままになるなど、予期しない結果が発生する可能性があります。Premature ending can result in unpredictable behavior such as files in use by the process being held open. その結果、 sp_stop_jobジョブには、型のステップが含まれている場合、極端な状況でのみ使用する必要がありますCmdExecまたはPowerShellします。Consequently, sp_stop_job should be used only in extreme circumstances if the job contains steps of type CmdExec or PowerShell.


既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。By default, members of the sysadmin fixed server role can execute this stored procedure. 他のユーザーには、 SQL ServerSQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。Other users must be granted one of the following SQL ServerSQL Server Agent fixed database roles in the msdb database:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。For details about the permissions of these roles, see SQL Server Agent Fixed Database Roles.

メンバーのSQLAgentUserRoleSQLAgentReaderRoleだけ自分が所有するジョブを停止できます。Members of SQLAgentUserRole and SQLAgentReaderRole can only stop jobs that they own. メンバーのSQLAgentOperatorRole他のユーザーによって所有されているものも含め、すべてのローカル ジョブを停止することができます。Members of SQLAgentOperatorRole can stop all local jobs including those that are owned by other users. メンバーのsysadminすべてローカル ジョブおよびマルチ サーバー ジョブを停止することができます。Members of sysadmin can stop all local and multiserver jobs.


次の例は、という名前のジョブを停止Weekly Sales Data Backupします。The following example stops a job named Weekly Sales Data Backup.

USE msdb ;  
EXEC dbo.sp_stop_job  
    N'Weekly Sales Data Backup' ;  

参照See Also

sp_delete_job (TRANSACT-SQL) sp_delete_job (Transact-SQL)
sp_help_job (TRANSACT-SQL) sp_help_job (Transact-SQL)
sp_start_job (TRANSACT-SQL) sp_start_job (Transact-SQL)
sp_update_job (TRANSACT-SQL) sp_update_job (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)System Stored Procedures (Transact-SQL)