次の方法で共有


SQL Server エージェント ジョブを開始する

適用対象:SQL ServerAzure SQL Managed Instance

Von Bedeutung

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。

この記事では、SQL Server Management Studio、Transact-SQL、または SQL Server 管理オブジェクトを使用して、SQL Server で SQL Server エージェント ジョブの実行を開始する方法について説明します。

ジョブは、SQL Server エージェントが実行する指定された一連のアクションです。 SQL Server エージェント ジョブは、1 つのローカル サーバーで実行することも、複数のリモート サーバーで実行することもできます。

セキュリティ

詳細については、「 SQL Server エージェントのセキュリティを実装する」を参照してください。

SQL Server Management Studio を使用します。

  1. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続 し、そのインスタンスを展開します。

  2. [SQL Server エージェント] を展開し、 [ジョブ]を展開します。 ジョブを開始したい方法に応じて、次のいずれかの手順を実行します。

    • 単一のサーバーまたはターゲット サーバー上で作業を行っている場合、またはマスター サーバー上でローカル サーバー ジョブを実行している場合、開始するジョブを右クリックして、[ジョブの開始] を選択します。

    • 複数のジョブを開始するには、[ジョブの利用状況モニター] を右クリックし、[ジョブの利用状況の表示] を選択します。 ジョブの利用状況モニターでは、複数のジョブを選択し、選択内容を右クリックして、[ジョブの開始] を選択できます。

    • マスター サーバー上で作業を行っていて、すべての対象サーバーで同時にジョブを実行する場合、開始するジョブを右クリックし、[ジョブの開始] を選択します。次に、[すべての対象サーバーで開始] を選択します。

    • マスター サーバー上で作業を行っていて、ジョブのターゲット サーバーを指定する場合、開始するジョブを右クリックし、[ジョブの開始] を選択します。次に、[特定のターゲット サーバーで開始] を選択します。 [ダウンロード命令の通知] ダイアログ ボックスの [特定のターゲット サーバー] チェック ボックスをオンにし、このジョブが実行される各ターゲット サーバーを選択します。

Transact-SQL の使用

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。

    -- starts a job named Weekly Sales Data Backup.
    USE msdb;
    GO
    
    EXECUTE dbo.sp_start_job N'Weekly Sales Data Backup';
    GO
    

詳細については、「 sp_start_job」を参照してください。

SQL Server 管理オブジェクトの使用

選択したプログラミング言語 (Visual Basic、Visual C#、SQL PowerShell など) を使用して、Start クラスのJob メソッドを呼び出します。

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 エージェントでスクリプトを使用する方法。

  1. SQL Server Management Studio (SSMS) を開きます。

  2. 適切な SQL Server インスタンスに接続します。

  3. SQL Server エージェント ノードを展開します。

  4. [ジョブ] を右クリックし、[新しいジョブ] を選択します。

  5. [ 新しいジョブ ] ダイアログ ボックスで、ジョブ名とその他の必要な詳細を入力します。

  6. [ステップ] ページに移動し、[新規] を選択して新しいジョブ ステップを作成します。

  7. [ 新しいジョブ ステップ ] ダイアログ ボックスで、次の操作を行います。

    1. [種類] を PowerShell に設定します。

    2. [コマンド] フィールドに、パラメーターと共に PowerShell スクリプトを入力します。次に例を示します。

      .\YourScript.ps1 -ServerInstance "YourServerInstance" -JobName "YourJobName"
      
  8. 必要に応じて、その他のジョブ プロパティ (スケジュール、アラート、通知など) を設定します。

  9. [OK] を選択してジョブを保存します。

スクリプトの説明

Step Description
パラメーター このスクリプトでは、 と の 2 つのパラメーター (それぞれ SQL Server インスタンスとジョブ名) を受け取ります。
SMO の読み込み Add-Type コマンドレットを使用して、SQL Server 管理オブジェクト (SMO) アセンブリを読み込みます。
Server オブジェクト $ServerInstance パラメーターを使用して、新しいサーバー オブジェクトが作成されます。
Get Job スクリプトは、 $JobName パラメーターを使用して指定されたジョブを取得します。
ジョブの開始 ジョブが見つかった場合は、 Start メソッドを使用して開始します。 スクリプトは、成功のメッセージを出力します。 ジョブが見つからない場合は、エラー メッセージが表示されます。

詳細については、「SQL Server 管理オブジェクト (SMO)を参照してください。