Настройка заданий SQL в SQL Server с помощью T-SQL

Опубликовано: 28 Августа, 2022

В этой статье мы узнаем, как настраивать задания SQL в SQL Server с помощью T-SQL. Также мы подробно обсудим параметры заданий SQL в SQL Server с использованием T-SQL. Давайте обсудим это один за другим.

Введение :
Агент SQL Server — это компонент, используемый для автоматизации задач базы данных. Например, если нам нужно выполнить обслуживание индекса на рабочих серверах только в нерабочее время. Итак, мы создаем задание SQL Server для выполнения обслуживания индекса и планируем его на «нерабочие» часы. Когда мы устанавливаем SQL Server, агент SQL Server отключен. Поэтому сначала мы включим его и запустим вручную. Затем мы настроим задание SQL Server с помощью SQL Server Management Studio и системных хранимых процедур базы данных MSDB. Итак, в этой статье объясняется, как создать задание SQL Server с помощью системных хранимых процедур базы данных MSDB.

Системные хранимые процедуры базы данных MSDB:
SQL Server использует следующие из них.

Запрос-1: sp_add_job:
Процедура предназначена для создания нового задания. В случае успеха возвращается @job_id. Следующие рассуждения применимы следующим образом.

  • @название работы -
    Это уникальное имя работы.
  • @включено -
    Задание включено или отключено. После создания задания вы можете установить значение параметра равным 1, чтобы включить задание.
  • @notify_level_eventlog –
    Этот параметр используется для записи состояния задания SQL в средстве просмотра событий Windows.
Ценность Описание
0 Результат задания не будет записан в журнал событий.
1 Если задание выполнено успешно, результат будет записан в средство просмотра событий.
2 (значение по умолчанию) В случае сбоя задания результат и сообщение об ошибке будут записаны в средство просмотра событий.
3 Результат задания записывается в средство просмотра событий.
  • @notify_level_email –
    Он будет отправлять почту на основе результатов работы. Допустимые значения параметра совпадают со значениями аргумента @notify_level_eventlog.
  • @notify_level_page –
    Этот параметр служит для отправки пейджеру уведомления о результате задания SQL. Допустимые значения параметров совпадают со значениями аргумента @notiify_level_eventlog.
  • @удалить_уровень –
    Этот параметр служит для удаления задания после завершения. В этом случае значение параметра должно быть
  • Примечание -
    Значение по умолчанию — 0; тогда он не удалит задание после завершения.
  • @category_level –
    Этот параметр указывает значения категории задания. Значение по умолчанию — Null.
  • @owner_login_name –
    Значением является имя домена или имя входа в систему SQL владельца задания.

Запрос-2: Sp_add_jobserver:
Для выполнения задания SQL он указывает целевой сервер. Он принимает следующие аргументы следующим образом.

  • @job_id –
    В задании SQL он идентифицирует уникальные значения и является UNIQUEIDENTIFIER. Его значение по умолчанию равно NULL.
  • @название работы -
    В задании SQL этот параметр указывает имя задания.
  • @имя сервера -
    Это имя сервера, на котором вы хотите запустить задание SQL. Значением аргумента по умолчанию может быть локальный сервер (LOCAL) или имя хоста целевого сервера.

Запрос-3: sp_add_jobstep:
Эта хранимая процедура работает для добавления шага задания в задание SQL. Процедуры используют следующие аргументы следующим образом.

  • @название работы -
    Имя задания, в которое вы добавляете шаг. Это SYSNAME со значением по умолчанию NULL.
  • @шаг_имя –
    Название шага. Это SYSYNAME со значением по умолчанию NULL.
  • @step_id –
    Последовательный идентификатор шага задания. Это возрастающее число без пробела. Это значение типа INT, а значение по умолчанию — NULL.
  • @cmdexec_success_code –
    Это значение возвращается подсистемой CmdExec. Он указывает, было ли выполнение команды успешным. Код представляет собой значение int с 0 в качестве значения по умолчанию.
  • @on_success_action –
    Это значение указывает действие, которое должно быть выполнено после успешного завершения шага задания. Значения могут быть любыми из следующих:
Ценность Описание
1 Бросить работу и вернуть успех.
2 Выйти из задания и вернуться не удалось.
3 Перейти к следующему этапу работы
4 Перейти к идентификатору шага on_success_step_id
  • @on_fail_action –
    Укажите, какое действие следует выполнить в случае сбоя шагов задания. Это значение типа INT, а значение по умолчанию — NULL.
  • @retry_attempt –
    Укажите количество повторных попыток после сбоя шага задания. Это значение типа INT, а значение по умолчанию — NULL.
  • @retry_interval –
    Установите временной интервал между двумя попытками сбоя шага задания SQL. Это значение типа INT, а значение по умолчанию — NULL.
  • @Подсистема –
    Укажите имя подсистемы, используемой агентом SQL Server для выполнения команды. Допустимые значения следующие:
Значение подсистемы Описание
Файл CmdExec (*.exe, *.bat) Команда операционной системы или исполняемый файл
АНАЛИЗЗАПРОС Запросы службы анализа SQL Server, например, MDX, DMX
АНАЛИЗЗАПРОС Команда службы анализа SQL Server, например XMLA.
SSIS Пакет услуг интеграции с SQL Server.
PowerShell Команда PowerShell в сценарии.
T-SQL Запрос T-SQL или хранимая процедура
Распределение Агент распространителя репликации SQL Server.
Снимок Агент моментальных снимков репликации SQL Server.
LogReader Агент чтения журнала репликации SQL Server.
QueueReader Читатель очереди репликации SQL Server.
  • @команда –
    Укажите команду, которую служба агента SQL Server должна выполнять через подсистему. Тип данных — varchar(max), значение по умолчанию — NULL.
  • @Database_name –
    Укажите имя базы данных, в которой вы хотите запустить команду. Этот параметр полезен при выполнении сценария T-SQL с использованием агента SQL Server.

Запрос-4: Sp_add_jobschedule:
Хранимые процедуры служат для создания расписания задания SQL. Эта процедура использует следующие аргументы следующим образом.

  • @название работы -
    Укажите имя задания SQL. Расписание будет составлено для задания SQL, указанного в аргументе @job_name.
  • @имя -
    Название расписания. Тип данных — varchar, значение по умолчанию — NULL.
  • @включено -
    Установите 1, чтобы включить расписание, или 0, чтобы отключить расписание.
  • @freq_types –
    Указывает время выполнения задания SQL. Тип данных параметра — INT, а значение по умолчанию — 0. Допустимыми значениями являются любые из следующих :
Ценность Описание
1 ЗАДАНИЕ будет выполнено только один раз.
4 Повседневная
8 Еженедельно
16 Ежемесячно
64 Выполняет задание при запуске служб агента SQL Server.
128 Выполнение задания SQL, когда сервер простаивает.
  • @freq_interval –
    Указывает день выполнения задания SQL. Тип данных — INT, а значение по умолчанию — 0. Значение зависит от значения, указанного в параметре @freq_type. Допустимыми значениями являются любые из следующих:
Ценность Влияние на график работы
1 (один раз) @Freq_interval не будет использоваться.
4 (ежедневно) Каждые @freq_interval дн.
8

Значение @Freq_interval может быть любым из следующих.

1 = воскресенье

2=понедельник

4=вторник

8=среда

16 = четверг

32 = пятница

64 = суббота

16 Запустите задание в @Freq_interval день месяца
64 @Freq_interval не будет использоваться.
128 @Freq_interval не будет использоваться.
  • @freq_subday_type –
    Укажите единицу измерения freq_subday_interval. Тип данных — INT, а значение по умолчанию — NULL.
  • @active_start_date –
    Установите дату, когда вы хотите начать выполнение задания. Тип данных — INT, и он не имеет значения по умолчанию. Формат даты ГГММДД. Значение должно быть больше или равно 19900101.
  • @active_end_date –
    Укажите дату, когда остановить выполнение задания. Тип данных — INT, без значения по умолчанию. Формат даты — ГГММДД, а значение должно быть больше или равно 19900101.
  • @active_start_time –
    Укажите время, когда вы хотите начать выполнение задания. Тип данных — INT, без значения по умолчанию. Формат времени ЧЧММСС.
  • @active_end_time –
    Укажите время, когда вы хотите остановить выполнение задания. Тип данных — INT, без значения по умолчанию. Формат времени ЧЧММСС.