sp_add_job (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Создает новое задание, выполняемое службой агент SQL Server.
Соглашения о синтаксисе Transact-SQL
Внимание
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
Синтаксис
sp_add_job
[ @job_name = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] step_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] 'login' ]
[ , [ @notify_level_eventlog = ] eventlog_level ]
[ , [ @notify_level_email = ] email_level ]
[ , [ @notify_level_netsend = ] netsend_level ]
[ , [ @notify_level_page = ] page_level ]
[ , [ @notify_email_operator_name = ] 'email_name' ]
[ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
[ , [ @notify_page_operator_name = ] 'page_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] job_id OUTPUT ]
[ ; ]
Аргументы
@job_name
Имя задания. Имя должно быть уникальным и не может содержать символ процента (%
). @job_name — nvarchar(128), без значения по умолчанию. Обязательный.
@enabled
Отображает состояние добавленного задания. параметр tinyint имеет значение по умолчанию 1
(включено). Если 0
задание не включено и не выполняется в соответствии с расписанием. Однако его можно запустить вручную.
@description
Описание задания. @description — nvarchar(512) с значением по умолчаниюNULL
. Если @description опущен, N'No description available'
используется.
@start_step_id
Идентификатор первого этапа, выполняемого в ходе задания. @start_step_id имеет значение int с значением по умолчанию1
.
@category_name
Категория задания. @category_name — sysname с значением по умолчаниюNULL
.
@category_id
Независимый от языка механизм указания категории задания. @category_id имеет значение int с значением по умолчаниюNULL
.
@owner_login_name
Имя входа, которое владеет заданием. @owner_login_name — sysname, с значением по умолчаниюNULL
, которое интерпретируется как текущее имя входа. Только члены предопределенных ролей сервера sysadmin могут задать или изменить значение для @owner_login_name. Если пользователи, не являющиеся членами набора ролей sysadmin или изменяющие значение @owner_login_name, выполнение этой хранимой процедуры завершается ошибкой и возвращается ошибка.
@notify_level_eventlog
Значение, указывающее, когда следует помещать запись в журнал приложений Microsoft Windows для данного задания. @notify_level_eventlog является int и может быть одним из следующих значений:
значение | Описание |
---|---|
0 |
Никогда |
1 |
При успешном завершении |
2 (по умолчанию) |
При сбое |
3 |
Всегда |
@notify_level_email
Значение, указывающее, нужно ли отправить сообщение электронной почты по завершении этого задания. @notify_level_email является int, с значением по умолчанию0
, которое указывает никогда. @notify_level_email использует те же значения, что и @notify_level_eventlog.
@notify_level_netsend
Значение, указывающее, нужно ли отправить сетевое сообщение по завершении этого задания. @notify_level_netsend имеет значение int с значением по умолчанию0
, которое указывает никогда. @notify_level_netsend использует те же значения, что и @notify_level_eventlog.
@notify_level_page
Значение, указывающее, нужно ли отправить сообщение на пейджер по завершении этого задания. @notify_level_page имеет значение int с значением по умолчанию0
, которое указывает никогда. @notify_level_page использует те же значения, что и @notify_level_eventlog.
@notify_email_operator_name
Имя электронной почты пользователя для отправки электронной почты в момент достижения @notify_email_operator_name . @notify_email_operator_name — sysname с значением по умолчаниюNULL
.
@notify_netsend_operator_name
Имя оператора, которому отправляется сетевое сообщение после выполнения данного задания. @notify_netsend_operator_name имеет имя sysname с значением по умолчаниюNULL
.
@notify_page_operator_name
Имя лица, которое уведомляется по пейджеру о выполнении данного задания. @notify_page_operator_name — sysname с значением по умолчаниюNULL
.
@delete_level
Значение, указывающее, нужно ли удалять задание. delete_value имеет значение int, с значением по умолчанию0
, что означает никогда. @delete_level используют те же значения, что и @notify_level_eventlog.
Примечание.
Если @delete_level , 3
задание выполняется только один раз, независимо от расписаний, определенных для задания. Если в какой-то момент задание удаляет себя, журнал этого задания также удаляется.
@job_id ВЫПУСК
Идентификационный номер задания, присваиваемый заданию после успешного создания. @job_id — это выходная переменная типа uniqueidentifier с значением по умолчаниюNULL
.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Нет.
Замечания
@originating_server существует в sp_add_job
, но не указан в разделе "Аргументы". @originating_server зарезервировано для внутреннего использования.
После sp_add_job
выполнения добавления задания sp_add_jobstep
можно использовать для добавления шагов, выполняющих действия для задания. sp_add_jobschedule
можно использовать для создания расписания, используемого службой агент SQL Server для выполнения задания.
Используется sp_add_jobserver
для задания экземпляра SQL Server, в котором выполняется задание, и sp_delete_jobserver
удаления задания из экземпляра SQL Server. Если задание выполняется на одном или нескольких целевых серверах в многосерверной среде, используйте sp_apply_job_to_targets
для задания целевые серверы или целевые группы серверов. Чтобы удалить задания с целевых серверов или целевых групп серверов, используйте sp_remove_job_from_targets
. Функция администрирования с несколькими серверами (MSX/TSX) не поддерживается в Управляемый экземпляр SQL Azure.
Среда SQL Server Management Studio обеспечивает простой и наглядный способ управления заданиями и рекомендуется для создания инфраструктуры заданий и управления ей.
Эта хранимая процедура использует имя аналогичного sp_add_job
объекта для службы заданий Elastic Azure для База данных SQL Azure. Сведения о версии эластичных заданий см. в разделе jobs.sp_add_job (задания Эластичных баз данных Azure).
Разрешения
Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE
разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.
Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb
базе данных:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
Только члены предопределенных ролей сервера sysadmin могут задать или изменить значение для @owner_login_name. Если пользователи, не являющиеся членами набора ролей sysadmin или изменяющие значение @owner_login_name, выполнение этой хранимой процедуры завершается ошибкой и возвращается ошибка.
Примеры
А. Добавление задания
В этом примере создается новое задание с именем NightlyBackups
.
USE msdb;
GO
EXEC dbo.sp_add_job @job_name = N'NightlyBackups';
GO
B. Добавление задания с пейджером, электронной почтой и чистой информацией о отправке
Этот пример иллюстрирует создание задания Ad hoc Sales Data Backup
, в случае сбоя которого пользователь François Ajenstat
получает уведомление (по пейджеру, электронной почте или с помощью сетевого всплывающего сообщения); в случае успешного завершения задания выполняется его удаление.
Примечание.
В данном примере предполагается, что оператор с именем François Ajenstat
и имя входа françoisa
уже существуют.
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1;
GO
Связанный контент
- sp_add_schedule (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
- sp_apply_job_to_targets (Transact-SQL)
- sp_delete_job (Transact-SQL)
- sp_delete_jobserver (Transact-SQL)
- sp_remove_job_from_targets (Transact-SQL)
- sp_help_job (Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_job (Transact-SQL)