sp_stop_job (Transact-SQL)
適用対象: SQL ServerAzure SQL Managed Instance
ジョブの実行を停止するようにSQL Server エージェントに指示します。
構文
sp_stop_job
[ [ @job_name = ] N'job_name' ]
[ , [ @job_id = ] 'job_id' ]
[ , [ @originating_server = ] N'originating_server' ]
[ , [ @server_name = ] N'server_name' ]
[ ; ]
引数
[ @job_name = ] N'job_name'
停止するジョブの名前を指定します。 @job_nameは sysname で、既定値は NULL
.
[ @job_id = ] 'job_id'
停止するジョブの識別番号を指定します。 @job_idは uniqueidentifier で、既定値は NULL
.
[ @originating_server = ] N'originating_server'
元のサーバーの名前。 指定すると、すべてのマルチサーバー ジョブが停止します。 @originating_serverは sysname で、既定値は NULL
. このパラメーターは、ターゲット サーバーで呼び出す sp_stop_job
場合にのみ指定します。
マルチサーバー 管理istration (MSX/TSX) 機能は、Azure SQL Managed Instance ではサポートされていません。
Note
最初の 3 つのパラメーターは、いずれか 1 つだけを指定できます。
[ @server_name = ] N'server_name'
マルチサーバー ジョブを停止する特定のターゲット サーバーの名前。 @server_nameは sysname で、既定値は NULL
. このパラメーターは、マルチサーバー ジョブの発信元サーバーで呼び出す sp_stop_job
場合にのみ指定します。
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
ありません。
解説
sp_stop_job
は、停止シグナルをデータベースに送信します。 一部のプロセスはすぐに停止でき、一部のプロセスは停止する前に安定したポイント (またはコード パスへのエントリ ポイント) に到達する必要があります。 など、実行時間の長い Transact-SQL ステートメントBACKUP
RESTORE
や、一部DBCC
のコマンドの完了に時間がかかる場合があります。 これらのコマンドが実行されている場合、ジョブが取り消されるまでに時間がかかる場合があります。 ジョブを停止すると、ジョブが取り消されたことを示すエントリがジョブ履歴に記録されます。
ジョブが現在 CmdExec または PowerShell 型のステップを実行している場合、実行中のプロセス (MyProgram.exe など) は途中で終了する必要があります。 途中で終了した場合、そのプロセスによって使用されていたファイルが開いたままになるなど、予期しない結果が発生する可能性があります。 したがって、ジョブに CmdExec または PowerShell 型のステップが含まれている場合は、sp_stop_job
極端な状況でのみ使用する必要があります。
このストアド プロシージャは、Azure SQL Database の sp_stop_job
Azure Elastic Jobs サービスの同様の オブジェクトと名前を共有します。 エラスティック ジョブのバージョンについては、「jobs.sp_stop_job (Azure エラスティック ジョブ) (Transact-SQL)」を参照してください。
アクセス許可
このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE
できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
他のユーザーには、データベース内の固定データベース ロールSQL Server エージェント次のいずれかを付与するmsdb
必要があります。
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
SQLAgentUserRole および SQLAgentReaderRole のメンバーは、自分が所有するジョブのみを停止できます。 SQLAgentOperatorRole のメンバーは、他のユーザーが所有するジョブを含め、すべてのローカル ジョブを停止できます。 sysadmin のメンバーは、すべてのローカル ジョブとマルチサーバー ジョブを停止できます。
例
次の例では、という名前 Weekly Sales Data Backup
のジョブを停止します。
USE msdb;
GO
EXEC dbo.sp_stop_job N'Weekly Sales Data Backup';
GO
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示