Настройка заданий SQL в SQL Server с помощью T-SQL
В этой статье мы узнаем, как настраивать задания 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, без значения по умолчанию. Формат времени ЧЧММСС.