sp_stop_job (Transact-SQL)
SQL Server エージェントにジョブの実行を停止するように指示します。
構文
sp_stop_job
[@job_name =] 'job_name'
| [@job_id =] job_id
| [@originating_server =] 'master_server'
| [@server_name =] 'target_server'
引数
- [ @job_name =] 'job_name'
停止するジョブの名前を指定します。job_name のデータ型は sysname で、既定値は NULL です。
- [ @job_id = ] job_id
停止するジョブの識別番号を指定します。job_id のデータ型は uniqueidentifier で、既定値は NULL です。
[ @originating_server =] 'master_server'
マスタ サーバーの名前を指定します。指定した場合、すべてのマルチサーバー ジョブが停止します。master_server のデータ型は nvarchar(128) で、既定値は NULL です。このパラメータは、対象サーバーで sp_stop_job を呼び出すときにのみ指定してください。メモ : 最初の 3 つのパラメータは、いずれか 1 つだけを指定できます。
- [ @server_name = ] 'target_server'
マルチサーバー ジョブを停止する特定の対象サーバーの名前を指定します。target_server のデータ型は nvarchar(128) で、既定値は NULL です。このパラメータは、マルチサーバー ジョブのマスタ サーバーで sp_stop_job を呼び出すときにのみ指定してください。
結果セット
なし
解説
ジョブで CmdExec 型のステップが現在実行されている場合、実行中のプロセス (MyProgram.exe など) は途中で強制終了されます。途中で終了した場合、そのプロセスによって使用されていたファイルが開いたままになるなど、予期しない結果が発生する可能性があります。したがって、ジョブに CmdExec 型のステップが含まれる場合は、やむを得ない状況でのみ sp_stop_job を使用してください。
権限
既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。
SQLAgentUserRole および SQLAgentReaderRole のメンバは、自分が所有しているジョブだけを停止できます。SQLAgentOperatorRole のメンバは、他のユーザーのジョブを含めたすべてのローカル ジョブを停止できます。sysadmin のメンバは、すべてのローカル ジョブおよびマルチサーバー ジョブを停止できます。
戻り値
0 (成功) または 1 (失敗)
例
次の例では、Weekly Sales Data Backup
というジョブを停止します。
USE msdb ;
GO
EXEC dbo.sp_stop_job
N'Weekly Sales Data Backup' ;
GO
参照
関連項目
sp_delete_job (Transact-SQL)
sp_help_job (Transact-SQL)
sp_start_job (Transact-SQL)
sp_update_job (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)