Start a Job
適用対象: SQL Server Azure SQL Managed Instance
重要
現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。
この記事では、SQL Server で SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクトを使用して、Microsoft SQL Server エージェント ジョブの実行を開始する方法について説明します。
ジョブとは、 SQL Server エージェントで実行される特定の一連の処理のことです。 SQL Server エージェント ジョブは、1 つのローカル サーバーで実行することも、複数のリモート サーバーで実行することもできます。
始める前に
セキュリティ
詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。
SQL Server Management Studio を使用します
オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[SQL Server エージェント] を展開し、 [ジョブ]を展開します。 ジョブの開始方法に応じて、次のいずれかを行います。
単一のサーバーまたはターゲット サーバー上で作業を行っている場合、またはマスター サーバー上でローカル サーバー ジョブを実行している場合、開始するジョブを右クリックして、[ジョブの開始] を選択します。
複数のジョブを開始するには、[ジョブの利用状況モニター] を右クリックし、[ジョブの利用状況の表示] を選択します。 ジョブの利用状況モニターでは、複数のジョブを選択し、選択内容を右クリックして、[ジョブの開始] を選択できます。
マスター サーバー上で作業を行っていて、すべての対象サーバーで同時にジョブを実行する場合、開始するジョブを右クリックし、[ジョブの開始] を選択します。次に、[すべての対象サーバーで開始] を選択します。
マスター サーバー上で作業を行っていて、ジョブのターゲット サーバーを指定する場合、開始するジョブを右クリックし、[ジョブの開始] を選択します。次に、[特定のターゲット サーバーで開始] を選択します。 [ダウンロード命令の通知] ダイアログ ボックスの [特定のターゲット サーバー] チェック ボックスをオンにし、このジョブが実行される各ターゲット サーバーを選択します。
Transact-SQL の使用
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
-- starts a job named Weekly Sales Data Backup. USE msdb ; GO EXEC dbo.sp_start_job N'Weekly Sales Data Backup' ; GO
詳細については、「 sp_start_job (Transact-SQL)」を参照してください。
プログラミング言語の使用
Visual Basic、Visual C#、SQL PowerShell などの選択したプログラミング言語を使用して Job クラスの Start メソッドを呼び出します。
SQL PowerShell
パラメーターを使用して SQL Server エージェントで使用できる PowerShell スクリプトを次に示します。 このスクリプトでは、スクリプトに渡されたパラメーターを使用して SQL Server エージェント ジョブを開始する方法を示します。
# Parameters
param(
[string]$ServerInstance,
[string]$JobName
)
# Load the SMO assembly
Add-Type -AssemblyName "Microsoft.SqlServer.SMO"
# Create a server object
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerInstance
# Get the job you want to start
$job = $server.JobServer.Jobs[$JobName]
# Start the job
if ($job) {
$job.Start()
Write-Output "The job '$JobName' on server '$ServerInstance' has been started successfully."
} else {
Write-Output "The job '$JobName' was not found on server '$ServerInstance'."
}
SQL Server エージェントでスクリプトを使用する方法。
SQL Server Management Studio (SSMS) を起動します。
適切な SQL Server インスタンスに接続します。
SQL Server エージェント ノードを展開します。
[ジョブ] を右クリックし、[新しいジョブ] を選択します。
[新しいジョブ] ダイアログ ボックスで、ジョブ名とその他の必要な詳細を入力します。
[ステップ] ページに移動し、[新規] を選択して新しいジョブ ステップを作成します。
[新しいジョブ ステップ] ダイアログ ボックスで、次の操作を行います。
[TYPE] を PowerShell に設定します。
[コマンド] フィールドに、PowerShell スクリプトとパラメーターを入力します。次に例を示します。
.\YourScript.ps1 -ServerInstance "YourServerInstance" -JobName "YourJobName"
必要に応じて、その他のジョブ プロパティ (スケジュール、アラート、通知など) を設定します。
[OK] を選択してジョブを保存します。
スクリプトの説明
- パラメーター: スクリプトは、$ServerInstance と $JobName の 2 つのパラメーターを受け取ります。これらは、それぞれ SQL Server インスタンスとジョブ名です。
- SMO の読み込み: Add-Type コマンドレットを使用して、SQL Server 管理オブジェクト (SMO) アセンブリを読み込みます。
- サーバー オブジェクト: $ServerInstance パラメーターを使用して新しいサーバー オブジェクトが作成されます。
- ジョブの取得: スクリプトは、$JobName パラメーターを使用して指定されたジョブを取得します。
- ジョブの開始: ジョブが見つかった場合は、Start メソッドを使用して開始されます。 スクリプトは、成功のメッセージを出力します。 ジョブが見つからない場合は、エラー メッセージが表示されます。
詳細については、「 SQL Server 管理オブジェクト (SMO) プログラミング ガイド」を参照してください。