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

SQL Serverエージェントスケジュールの変更(T-SQL)

    SQL Server Agentのスケジュールは、ジョブとは独立して管理できます。これは、ジョブ自体を更新せずにスケジュールを直接更新できることを意味します。

    これは、sp_update_scheduleを使用して行うことができます ストアドプロシージャ。

    スケジュールを作成する

    まず、スケジュールを作成しましょう:

    EXEC sp_add_schedule 
        @schedule_name = N'Weekly_Sat_1AM',
        @freq_type = 8,
        @freq_interval = 64,
        @freq_recurrence_factor = 1,
        @active_start_time = 10000;

    これで、sp_update_scheduleを使用できます そのスケジュールを変更します。

    スケジュールを更新する

    作成したスケジュールを更新する例を次に示します。

    EXEC sp_update_schedule 
        @name = N'Weekly_Sat_1AM',
        @new_name = N'Weekly_Sun_4AM',
        @freq_type = 8,
        @freq_interval = 1,
        @freq_recurrence_factor = 1,
        @active_start_time = 40000;

    この場合、スケジュールの名前、頻度間隔、開始時刻を変更しました。

    sp_update_scheduleに注意してください パラメータ値が指定されている設定のみを変更します。パラメータを省略すると、現在の設定が保持されます。

    したがって、一部の設定は同じままだったため(具体的には、@freq_type および@freq_recurrence_factor )、これらのパラメータを完全に省略できたはずです。

    このように:

    EXEC sp_update_schedule 
        @name = N'Weekly_Sat_1AM',
        @new_name = N'Weekly_Sun_4AM',
        @freq_interval = 1,
        @active_start_time = 40000;

    スケジュールを無効にする

    @enabledを設定できます 0へ スケジュールを無効にします。

    例:

    EXEC sp_update_schedule 
        @name = N'Weekly_Sun_4AM',
        @new_name = N'Weekly_Sun_4AM (DISABLED)',
        @enabled = 0;

    この例では、ジョブが無効になっていることを明確にするために名前も変更しました。

    スケジュールを確認する

    sp_help_scheduleを使用できます スケジュールの現在の設定を表示します。

    パラメータの有無にかかわらず使用できます。パラメータなしで使用すると、すべてのスケジュールが返されます。

    EXEC sp_help_schedule;

    1つのスケジュールの詳細のみを表示する場合は、スケジュールの名前またはIDを指定できます。

    このように:

    EXEC sp_help_schedule 
    	@schedule_name = 'Weekly_Sun_4AM';

    ただし、名前を入力するときは、スケジュールに付けた名前を覚えておく必要があります。この場合、前の例(スケジュールを無効にしたとき)の後にこの手順を実行すると、次のようにする必要があります。

    EXEC sp_help_schedule 
    	@schedule_name = 'Weekly_Sun_4AM (DISABLED)';

    ただし、スケジュールのIDは一定のままなので、スケジュールの名前に関係なく使用できます。

    例:

    EXEC sp_help_schedule 
    	@schedule_id = 16;

    IDを使用する場合、必要に応じてパラメータ名を省略できます。

    例:

    EXEC sp_help_schedule 16;

    変更されたスケジュールを使用するジョブはどうなりますか?

    スケジュールを使用するすべてのジョブは、すぐに新しい設定を使用します。ただし、スケジュールを変更しても、現在実行中のジョブは停止しません。

    完全な構文

    sp_update_scheduleの完全な構文 このようになります:

    sp_update_schedule   
        {   [ @schedule_id = ] schedule_id   
          | [ @name = ] 'schedule_name' }  
        [ , [ @new_name = ] new_name ]  
        [ , [ @enabled = ] enabled ]  
        [ , [ @freq_type = ] freq_type ]  
        [ , [ @freq_interval = ] freq_interval ]   
        [ , [ @freq_subday_type = ] freq_subday_type ]   
        [ , [ @freq_subday_interval = ] freq_subday_interval ]   
        [ , [ @freq_relative_interval = ] freq_relative_interval ]   
        [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]   
        [ , [ @active_start_date = ] active_start_date ]   
        [ , [ @active_end_date = ] active_end_date ]   
        [ , [ @active_start_time = ] active_start_time ]   
        [ , [ @active_end_time = ] active_end_time ]   
        [ , [ @owner_login_name = ] 'owner_login_name' ]  
        [ , [ @automatic_post =] automatic_post ]

    sp_update_scheduleについては、Microsoftのドキュメントを参照してください。 各パラメータの説明と、それぞれが受け入れる値について説明します。


    1. Oracleの集計を使用したテーブルの回転/ピボット

    2. 左側のvarcharを特定の長さにパディングする最も効率的なT-SQLの方法は?

    3. MySQLでのMyISAMの操作

    4. pl / sqlの表から行タイプを返す関数を実行するにはどうすればよいですか?