sql >> データベース >  >> RDS >> Sqlserver

T-SQLを使用してSQLServerエージェントジョブを実行する方法

    SQL Serverエージェントジョブを最初に作成するときに、簡単なテストを実行して、問題なく実際に実行されるかどうかを確認することをお勧めします。

    これは、SSMS GUIを使用する場合は非常に簡単ですが、T-SQLでどのように実行しますか?

    回答:sp_start_job ストアドプロシージャ。

    デモンストレーションの例を次に示します。

    USE msdb;  
    GO  
      
    EXEC sp_start_job N'BackupKrankyKranesDB';
    GO

    この場合、BackupKrankyKranesDBというジョブを実行しました。 。

    プロシージャは結果セットを返しません。ただし、SSMSで実行すると、次のようなメッセージが表示される場合があります。

    Job 'BackupKrankyKranesDB' started successfully.
     Completion time: 2020-12-13T19:54:18.3503521-08:00

    パラメータ

    パラメータ名を指定することもできます。その場合、私はこれを行うことができたでしょう:

    USE msdb;  
    GO  
      
    EXEC sp_start_job @job_name = N'BackupKrankyKranesDB';
    GO

    ジョブ名またはジョブIDのいずれかを指定できます(両方は指定できません)。ジョブIDは一意の識別子です デフォルトはNULL

    したがって、代わりにこれを行うこともできます:

    USE msdb;  
    GO  
      
    EXEC sp_start_job @job_id = '4FAE7031-36E8-4934-81E6-0D561F375627';
    GO

    それが上記のジョブのジョブIDです。もちろん、実行する必要のあるジョブのIDを使用する必要があります。 sp_help_jobを使用できます ジョブIDを取得するためのストアドプロシージャ。

    構文

    実際の構文は次のようになります:

    sp_start_job   
         {   [@job_name =] 'job_name'  
           | [@job_id =] job_id }  
         [ , [@error_flag =] error_flag]  
         [ , [@server_name =] 'server_name']  
         [ , [@step_name =] 'step_name']  
         [ , [@output_flag =] output_flag]

    sp_start_jobを参照してください 各引数の説明については、MicrosoftのWebサイトを参照してください。

    ジョブ履歴の表示

    ジョブを実行したので、sp_help_jobhistoryを使用できます。 ジョブ履歴に追加されたことを確認するには:

    EXEC sp_help_jobhistory 
    	@job_name = 'BackupKrankyKranesDB',
    	@mode = 'FULL';

    @mode = 'FULL'を使用する より詳細な情報を確実に取得できます。

    ジョブを実行した後に得たものは次のとおりです。

    sp_help_jobhistoryを参照してください このストアドプロシージャの詳細については、MicrosoftのWebサイトを参照してください。

    ジョブ履歴を返すためのその他のオプションについては、SQLServerのジョブ履歴を取得する4つの方法も参照してください。


    1. EDBがPostgres市場のリーダーになった経緯

    2. Oracle認定

    3. Oracleバルクコレクトに相当するPostgreSQL

    4. SQLピボット–行を列に変換する方法を知っている