Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Създайте график на агент на SQL Server с T-SQL

Когато използвате T-SQL, можете да използвате sp_add_schedule съхранена процедура за добавяне на график на агент на SQL Server.

Тази процедура създава графика, но не го прикачва към никакви задачи. За да го прикачите към задание, трябва да използвате 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 , трябва да предоставите името на заданието или неговия идентификатор (но не и двете), както и името или идентификатора на графика (но не и двете).

Пример за 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 Agent
128 Изпълнявайте, когато компютърът е неактивен

@freq_interval

Този аргумент указва дните, в които се изпълнява заданието.

Този аргумент зависи от стойността на @freq_type аргумент, както е посочено в следната таблица:

Стойност на freq_type Ефект върху freq_interval
1 (веднъж) freq_interval не се използва.
4 (ежедневно) Всеки freq_interval дни.
8 (седмично) freq_interval е едно или повече от следните (в комбинация с 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 , със стойност по подразбиране 0 и се използва само ако freq_type е 8 , 16 , или 32 .

@active_start_time

Указва времето на всеки ден между @active_start_date и @active_end_date аргументи за започване на изпълнение на задание. @active_start_time еint , със стойност по подразбиране 000000 , което показва 12:00:00ч. на 24-часов часовник и трябва да бъде въведен с помощта на формуляра HHMMSS.

@active_start_date

Въпреки че не е включен в моите примери по-горе, @active_start_date аргумент ви позволява да посочите датата, на която изпълнението на задание може да започне. Това е int , със стойност по подразбиране NULL, което показва днешната дата. Датата е форматирана като ГГГГММДД.

@active_end_date

Можете също да предоставите @active_end_date аргумент, който посочва датата, на която изпълнението на задание може да спре.

@active_end_date еint , със стойност по подразбиране 99991231 , което показва 31 декември 9999 г. Датата е форматирана като ГГГГММДД.

Повече информация

Вижте документацията на Microsoft за sp_add_schedule и/или документацията на Microsoft за sp_add_jobschedule за повече подробности относно различните аргументи и техните приети стойности.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кумулативна сума на SQL Server по групи

  2. ROLLBACK TRUNCATE в SQL Server

  3. Актуализиране на пощенски акаунт в база данни (SSMS)

  4. Свързване на Delphi на Linux към SQL Server

  5. Как да преместя таблица в схема в T-SQL