что такое job в sql
sp_add_job (Transact-SQL)
добавляет новое задание, выполняемое службой агента SQL.
Синтаксические обозначения в Transact-SQL
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
Синтаксис
Аргументы
[ @job_name = ] ‘job_name’ Имя задания. Имя должно быть уникальным и не может содержать символ процента ( % ). job_name имеет тип nvarchar (128) и не имеет значения по умолчанию.
[ @enabled = ] enabled Указывает состояние добавленного задания. Enabled имеет тип tinyint и значение по умолчанию 1 (включено). Если значение равно 0, задание не включено и не выполняется в соответствии с расписанием. Однако его можно запустить вручную.
[ @description = ] ‘description’ Описание задания. Description имеет тип nvarchar (512) и значение по умолчанию NULL. Если Описание отсутствует, используется параметр «нет описания».
[ @start_step_id = ] step_id Идентификационный номер первого шага, выполняемого для задания. step_id имеет тип int и значение по умолчанию 1.
[ @category_name = ] ‘category’ Категория для задания. Category имеет тип sysname и значение по умолчанию NULL.
[ @category_id = ] category_id Независимый от языка механизм для указания категории заданий. category_id имеет тип int и значение по умолчанию NULL.
[ @notify_level_eventlog = ] eventlog_level значение, указывающее, когда следует поместить запись в журнал приложений Microsoft Windows для этого задания. eventlog_level имеет тип int и может принимать одно из следующих значений.
Значение | Описание |
---|---|
0 | Никогда |
1 | При успешном завершении |
2 (по умолчанию) | При сбое |
3 | Always (Всегда) |
[ @notify_level_email = ] email_level Значение, указывающее, когда следует отправить сообщение электронной почты после завершения этого задания. email_level имеет тип int и значение по умолчанию 0, что означает Never. email_level использует те же значения, что и eventlog_level.
[ @notify_level_netsend = ] netsend_level Значение, указывающее, когда следует отправить сетевое сообщение после завершения этого задания. netsend_level имеет тип int и значение по умолчанию 0, что означает Never. netsend_level использует те же значения, что и eventlog_level.
[ @notify_level_page = ] page_level Значение, указывающее, когда следует отправить страницу после завершения этого задания. page_level имеет тип int и значение по умолчанию 0, что означает Never. page_level использует те же значения, что и eventlog_level.
[ @notify_netsend_operator_name = ] ‘netsend_name’ Имя оператора, которому отправляется сетевое сообщение после завершения этого задания. Аргумент netsend_name имеет тип sysname и значение по умолчанию NULL.
[ @notify_page_operator_name = ] ‘page_name’ Имя пользователя, которому будет присвоена страница после завершения этого задания. Аргумент page_name имеет тип sysname и значение по умолчанию NULL.
[ @delete_level = ] delete_level Значение, указывающее, когда следует удалять задание. delete_value имеет тип int и значение по умолчанию 0, что означает никогда. delete_level использует те же значения, что и eventlog_level.
Если delete_level имеет значение 3, задание выполняется только один раз, независимо от всех расписаний, определенных для задания. Если в какой-то момент задание удаляет себя, журнал этого задания также удаляется.
[ @job_id = ] _job_idOUTPUT Идентификационный номер задания, назначенный заданию при успешном создании. job_id является выходной переменной типа uniqueidentifier и ЗНАЧЕНИЕМ по умолчанию NULL.
Значения кода возврата
0 (успешное завершение) или 1 (сбой)
Результирующие наборы
Remarks
@ originating_server существует в sp_add_job, но не указана в списке arguments. @ originating_server зарезервировано для внутреннего использования.
SQL Server Management Studio обеспечивает доступный графический способ управления заданиями и рекомендуется для создания и управления инфраструктурой заданий.
Разрешения
Для выполнения этой хранимой процедуры пользователи должны быть членами предопределенной роли сервера sysadmin или иметь одну из следующих SQL Server предопределенных ролей базы данных агента, которая находится в базе данных msdb :
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
сведения о конкретных разрешениях, связанных с каждой из этих предопределенных ролей базы данных, см. в разделе фиксированные роли базы данных агента SQL Server.
Примеры
A. Создание задания
Б. Создание задания с уведомлением по пейджеру, электронной почте и по сети
В данном примере предполагается, что оператор с именем François Ajenstat и имя входа françoisa уже существуют.
sp_add_jobstep (Transact-SQL)
добавляет шаг (операцию) в задание агента SQL.
Синтаксические обозначения в Transact-SQL
в Управляемый экземпляр SQL Azureподдерживаются большинство типов заданий агента SQL Server. Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
Синтаксис
Аргументы
[ @job_id = ] job_id Идентификационный номер задания, к которому добавляется шаг. job_id имеет тип uniqueidentifier и значение по умолчанию NULL.
[ @job_name = ] ‘job_name’ Имя задания, к которому добавляется шаг. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.
[ @step_id = ] step_id Идентификационный номер последовательности для шага задания. Идентификационные номера шагов начинаются с 1 и увеличиваются без пробелов. Если этап вставляется в существующую последовательность, порядковые номера меняются автоматически. Значение указывается, если step_id не указано. step_id имеет тип int и значение по умолчанию NULL.
[ @step_name = ] ‘step_name’ Имя шага. Аргумент step_name имеет тип sysname и не имеет значения по умолчанию.
[ @subsystem = ] ‘subsystem’ Подсистема, используемая SQL Server службой агента для выполнения команды. подсистема имеет тип nvarchar (40) и может принимать одно из следующих значений.
Значение | Описание |
---|---|
«ActiveScripting« | Активный скрипт. ** Внимание! ** В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. |
CmdExec | Команда операционной системы или исполняемая программа. |
«Distribution« | Задание агента распространения репликации. |
«Snapshot« | Задание агента моментальных снимков репликации. |
«Модуль чтения журнала« | Задание агента чтения журнала репликации. |
«Merge« | Задание агента слияния репликации. |
«QueueReader« | Задание агента чтения очереди репликации. |
«ANALYSISQUERY« | Запрос служб Analysis Services (многомерное выражение, расширения интеллектуального анализа данных). |
«ANALYSISCOMMAND« | Команда служб Analysis Services (XML для аналитики). |
«SSIS« | Службы Integration Services выполнение пакетов служб |
«PowerShell« | Скрипт PowerShell |
«Tsql» (по умолчанию) | инструкция Transact-SQL |
[ @command = ] ‘command’ Команды, выполняемые службой SQLServerAgent через подсистему. команда имеет тип nvarchar (max) и значение по умолчанию NULL. Агент SQL Server выполняет замену токенов, что обеспечивает такую же гибкость, что и переменные при написании программ.
$(ESCAPE_ имя макроса (DATE))
Дополнительные сведения об этих токенах и обновлении шагов задания для использования нового синтаксиса маркера см. в разделе Использование маркеров в шагах задания.
[ @additional_parameters = ] ‘parameters’ Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. Параметры — ntext и значение по умолчанию NULL.
[ @on_success_action = ] success_action Действие, выполняемое, если шаг выполнен. success_action имеет тип tinyint и может принимать одно из следующих значений.
Значение | Описание (действие) |
---|---|
1 (по умолчанию) | Завершить с успешным выполнением. |
2 | Завершить с ошибкой. |
3 | Перейти к следующему шагу. |
4 | Перейти к шагу on_success_step_id |
[ @on_success_step_id = ] success_step_id Идентификатор шага в этом задании, который должен быть выполнен, если шаг выполнен, а success_action — 4. success_step_id имеет тип int и значение по умолчанию 0.
[ @on_fail_action = ] fail_action Действие, выполняемое в случае сбоя шага. fail_action имеет тип tinyint и может принимать одно из следующих значений.
Значение | Описание (действие) |
---|---|
1 | Завершить с успешным выполнением. |
2 (по умолчанию) | Завершить с ошибкой. |
3 | Перейти к следующему шагу. |
4 | Перейти к шагу on_fail_step_id |
[ @on_fail_step_id = ] fail_step_id Идентификатор шага в этом задании, который будет выполнен, если шаг завершается ошибкой, а fail_action — 4. fail_step_id имеет тип int и значение по умолчанию 0.
[ @server = ] ‘server’ Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. Server имеет тип nvarchar (30) и значение по умолчанию NULL.
[ @database_user_name = ] ‘user’ Имя учетной записи пользователя, используемой при выполнении Transact-SQL шага. Аргумент User имеет тип sysname и значение по умолчанию NULL. Если пользователь имеет значение null, шаг выполняется в пользовательском контексте владельца задания в базе данных. Агент SQL Server включит этот параметр только в случае, если владелец задания — член роли SQL Server sysadmin. Если это так, то данный шаг Transact-SQL будет выполнен в контексте данного имени пользователя SQL Server. если владелец задания не является SQL Server sysadmin, то шаг Transact-SQL всегда будет выполняться в контексте имени входа, владеющего этим заданием, а @database_user_name параметр будет проигнорирован.
[ @retry_attempts = ] retry_attempts Количество повторных попыток использования в случае сбоя этого шага. retry_attempts имеет тип int и значение по умолчанию 0, которое указывает на отсутствие повторных попыток.
[ @retry_interval = ] retry_interval Количество времени в минутах между повторными попытками. retry_interval имеет тип int и значение по умолчанию 0, что означает 0-минутный интервал.
[ @os_run_priority = ] run_priority Процессу.
[ @flags = ] flags Параметр, который управляет поведением. Флаги имеют тип int и могут принимать одно из следующих значений.
Значение | Описание |
---|---|
0 (по умолчанию) | Переписать выходной файл. |
2 | Добавить к выходному файлу. |
4 | Записать вывод шага задания Transact-SQL в журнал шагов. |
8 | Записать журнал в таблицу (переписать существующий журнал). |
16 | Записать журнал в таблицу (добавить к существующему журналу). |
32 | Записать все выходные данные в журнал заданий. |
64 | Создать событие Windows для использования в качестве сигнала для прерывания шага задания Cmd. |
[ @proxy_id = ] proxy_id Идентификационный номер учетной записи-посредника, от имени которой выполняется шаг задания. proxy_id имеет тип int и значение по умолчанию NULL. Если proxy_id не указано, proxy_name не указана и user_name не указана, шаг задания выполняется как учетная запись службы для SQL Server агента.
[ @proxy_name = ] ‘proxy_name’ Имя учетной записи-посредника, от имени которой выполняется шаг задания. proxy_name имеет тип sysname и значение по умолчанию NULL. Если proxy_id не указано, proxy_name не указана и user_name не указана, шаг задания выполняется как учетная запись службы для SQL Server агента.
Значения кода возврата
0 (успешное завершение) или 1 (сбой)
Результирующие наборы
Remarks
Среда SQL Server Management Studio обеспечивает простой и наглядный способ управления заданиями и рекомендуется для создания инфраструктуры заданий и управления ей.
Прокси-сервер может идентифицироваться proxy_name или proxy_id.
Разрешения
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
Создатель шага задания должен иметь доступ к учетной записи-посреднику для шага задания. Члены предопределенной роли сервера sysadmin имеют доступ ко всем учетным записям-посредникам. Другим пользователям доступ к учетной записи-посреднику должен быть предоставлен явно.
Примеры
Следующий пример создает шаг задания, который изменяет доступ к базе данных на доступ только для чтения для базы данных Sales. Кроме того, этот пример задает число повторных попыток, которое равно 5, и через каждые 5 минут.
В этом примере предполагается, что задание Weekly Sales Data Backup уже существует.
View Job Step Information
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
В данном разделе описано, как просмотреть сведения о шаге задания в окне «Свойства шага задания». Также предоставляются сведения о просмотре выходных данных шага задания.
Перед началом работы
Для просмотра сведений о шаге задания используется:
Перед началом
Ограничения
безопасность
Permissions
Использование среды SQL Server Management Studio
Просмотр сведений о шаге задания
В обозревателе объектов подключитесь к экземпляру Microsoft Компонент SQL Server Database Engine и разверните его.
Разверните узел Агент SQL Server, затем пункт Задания, щелкните правой кнопкой мыши задание, содержащее шаг, который следует просмотреть, и выберите пункт Свойства.
Щелкните шаг задания, который нужно просмотреть, и выберите Изменить.
На странице Общие окна Свойства шага задания можно видеть тип шага задания и его действие.
Просмотр выходных данных шага задания
Кнопка Просмотр недоступна, если выходные данные шагов задания записываются в файл. Чтобы просмотреть файл вывода шага задания, используйте блокнот.
sp_start_job (Transact-SQL)
Отдает агенту SQL Server распоряжение немедленно выполнить задание.
Синтаксические обозначения в Transact-SQL
Синтаксис
Аргументы
[ @error_flag = ] error_flag Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
[ @server_name = ] ‘server_name’ Целевой сервер, на котором необходимо запустить задание. server_name имеет тип nvarchar (128) и значение по умолчанию NULL. server_name должен быть одним из целевых серверов, на которые в данный момент нацелено задание.
[ @step_name = ] ‘step_name’ Имя шага, с которого начинается выполнение задания. Применяется только к локальным заданиям. Аргумент step_name имеет тип sysname и значение по умолчанию NULL
[ @output_flag = ] output_flag Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
Значения кода возврата
0 (успешное завершение) или 1 (сбой)
Результирующие наборы
Remarks
Разрешения
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
Члены ролей SQLAgentUserRole и SQLAgentReaderRole могут запускать только те задания, которыми они владеют. Члены SQLAgentOperatorRole могут запускать все локальные задания, включая те, которые принадлежат другим пользователям. Члены роли sysadmin могут запускать все локальные и многосерверные задания.
Примеры
sp_stop_job (Transact-SQL)
Дает указание агенту SQL Server остановить выполнение текущего задания.
Синтаксические обозначения в Transact-SQL
Синтаксис
Аргументы
[ @job_name = ] ‘job_name’ Имя останавливаемого задания. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.
[ @job_id = ] job_id Идентификационный номер останавливаемого задания. job_id имеет тип uniqueidentifier и значение по умолчанию NULL.
[ @originating_server = ] ‘master_server’ Имя главного сервера. Если указано, останавливаются все многосерверные задания. master_server имеет тип nvarchar (128) и значение по умолчанию NULL. Этот параметр следует указывать только при вызове sp_stop_job на целевом сервере.
Может быть задан только один из первых трех аргументов.
[ @server_name = ] ‘target_server’ Имя конкретного целевого сервера, на котором необходимо отключить многосерверное задание. target_server имеет тип nvarchar (128) и значение по умолчанию NULL. Этот параметр следует указывать только при вызове sp_stop_job на главном сервере для многосерверного задания.
Значения кода возврата
0 (успешное завершение) или 1 (сбой)
Результирующие наборы
Remarks
sp_stop_job отправляет сигнал об ошибке в базу данных. Некоторые процессы можно немедленно остановить, и некоторые из них должны достичь стабильной точки (или точки входа в путь к коду), прежде чем их можно будет остановить. Для завершения некоторых длительных инструкций Transact-SQL, таких как BACKUP, RESTORE, и некоторых команд DBCC может потребоваться много времени. При их выполнении может потребоваться некоторое время, прежде чем задание будет отменено. Остановка задания приведет к регистрации записи «Задание отменено» в журнале заданий.
Если задание в данный момент выполняет шаг типа CmdExec или PowerShell, то выполняемый процесс (например, MyProgram.exe) принудительно завершается преждевременно. Преждевременное завершение может привести к непредсказуемому поведению, например файлы, используемые процессом, могут остаться открытыми. Следовательно, sp_stop_job следует использовать только в крайних обстоятельствах, если задание содержит шаги типа CmdExec или PowerShell.
Разрешения
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
Члены SQLAgentUserRole и SQLAgentReaderRole могут прекращать только те задания, которыми они владеют. Члены SQLAgentOperatorRole могут прекращать все локальные задания, включая те, которые принадлежат другим пользователям. Члены роли sysadmin могут прекращать выполнение всех локальных и многосерверных заданий.