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

T-SQLを使用してSQLServerエージェントスケジュールを作成する

    T-SQLを使用する場合は、sp_add_scheduleを使用できます。 SQLServerエージェントのスケジュールを追加するためのストアドプロシージャ。

    この手順でスケジュールを作成しますが、どのジョブにも添付しません。ジョブにアタッチするには、sp_attach_scheduleを使用する必要があります 手順。

    sp_add_jobscheduleを使用することもできます スケジュールを作成し、すべて同じ手順で添付します。

    sp_add_scheduleの例 手順

    sp_add_scheduleを使用する例を次に示します。 新しいスケジュールを作成するには:

    EXEC sp_add_schedule 
        @schedule_name = N'RunDailyAM',
        @freq_type = 4,
        @freq_interval = 4,
        @active_start_time = 041000;
    GO

    このストアドプロシージャは、この例に含まれているよりも多くの引数を受け入れますが、これらはより一般的なものの一部です。受け入れられる値の概要については、以下の表を参照してください。

    @schedule_name は必須の引数ですが、その他はオプションであり、指定しない場合に備えてデフォルト設定があります。

    これで、sp_attach_scheduleを使用できます そのスケジュールを既存のジョブに添付するには:

    
    EXEC sp_attach_schedule  
       @job_name = N'BackupPetHotelDB',  
       @schedule_name = N'RunDailyAM';  
    GO

    sp_attach_scheduleを使用する場合 、ジョブの名前またはそのID(両方ではない)、およびスケジュール名またはID(両方ではない)を指定する必要があります。

    sp_add_jobscheduleの例 手順

    sp_add_jobscheduleを使用する例を次に示します。 新しいスケジュールを作成してジョブに添付するには、すべて一度に:

    EXEC sp_add_jobschedule 
        @job_name = N'BackupMusicDB',
        @name = N'Weekly_Sun_3AM',
        @freq_type = 8,
        @freq_interval = 1,
        @freq_recurrence_factor = 1,
        @active_start_time = 30000;

    この手順では、@job_name 引数はジョブ名と@nameを提供します 引数は、スケジュールに付ける名前を提供します。

    パラメータ値

    スケジュールデータがmsdbに保存される方法 データベースを使用すると、T-SQLを使用したジョブのスケジューリングに関して少し注意が必要になります。

    日付/時刻の値はintとして保存されます タイプ。頻度タイプはintとして表されます 、間隔値、およびその他のさまざまなオプションも同様です。

    以下は、上記の例で提供されたパラメータの許容値の概要です。

    @freq_type

    この引数は、ジョブがいつ実行されるかを指定します。次の値を受け入れます:

    説明
    1 一度
    4 毎日
    8 毎週
    16 毎月
    32 毎月、freq_intervalを基準に
    64 SQLエージェントサービスの開始時に実行
    128 コンピューターがアイドル状態のときに実行する

    @freq_interval

    この引数は、ジョブが実行される日を指定します。

    この引数は、@freq_typeの値によって異なります。 次の表に概説されているように、引数:

    freq_typeの値 freq_intervalへの影響
    1 (1回) freq_interval 未使用です。
    4 (毎日) すべてのfreq_interval 日。
    8 (毎週) freq_interval 次の1つ以上です(ORと組み合わせて 論理演算子):

    1 (日曜日)

    2 (月曜日)

    4 (火曜日)

    8 (水曜日)

    16 (木曜日)

    32 (金曜日)

    64 (土曜日)
    16 (毎月) freq_intervalについて 月の日。
    32 (月次相対) freq_interval 次のいずれかです。

    1 (日曜日)

    2 (月曜日)

    3 (火曜日)

    4 (水曜日)

    5 (木曜日)

    6 (金曜日)

    7 (土曜日)

    8 (日)

    9 (平日)

    10 (週末)
    64 (SQLServerAgentサービスの開始時) freq_interval 未使用です。
    128 freq_interval 未使用です。

    @freq_recurrence_factor

    これは、スケジュールされたジョブの実行間の週数または月数を指定します。

    これはintです 、デフォルトは0freq_typeの場合にのみ使用されます 8です 、16 、または32

    @active_start_time

    @active_start_dateの間の任意の日の時刻を指定します および@active_end_date ジョブの実行を開始するための引数。 @active_start_time int 、デフォルトは000000 、12:00:00A.M.を示します24時間制で、フォームHHMMSSを使用して入力する必要があります。

    @active_start_date

    上記の例には含まれていませんが、@active_start_date 引数を使用すると、ジョブの実行を開始できる日付を指定できます。これはintです 、デフォルトはNULLで、今日の日付を示します。日付はYYYYMMDDとしてフォーマットされます。

    @active_end_date

    @active_end_dateを提供することもできます 引数。ジョブの実行を停止できる日付を指定します。

    @active_end_date int 、デフォルトは99991231 、は9999年12月31日を示します。日付はYYYYMMDDとしてフォーマットされます。

    詳細

    sp_add_scheduleについては、Microsoftのドキュメントを参照してください。 および/またはsp_add_jobscheduleに関するMicrosoftのドキュメント さまざまな引数とそれらの受け入れられる値の詳細については、


    1. JDBCでpostgresに接続するときにスキーマを指定することは可能ですか?

    2. DATETIME2FROMPARTS()SQL Server(T-SQL)の例

    3. 単純なPostgresqlステートメント-列名が存在しません

    4. MySQLにあるようなブールデータ型はMicrosoftSQLServerにありますか?