Создание работ
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
Задание — это определенная последовательность действий, выполняемых агентом SQL Server. Задание может выполнять широкий диапазон действий, например запуск скриптов Transact-SQL, приложений командной строки, скриптов Microsoft ActiveX, пакетов Integration Services, команд и запросов Analysis Services и задач репликации. Задания могут запускать повторяющиеся или запланированные задачи, они могут автоматически уведомлять пользователей о состоянии задания, формируя предупреждения и тем самым значительно упрощают администрирование SQL Server.
Чтобы создать задание, пользователь должен быть членом одной из предопределенных ролей базы данных агент SQL Server или предопределенных ролей сервера sysadmin. Задание может быть изменено его владельцем или членом роли sysadmin . Члены роли sysadmin могут предоставлять права владения заданием другим пользователям, а также запускать любое задание, независимо от того, кто является его владельцем. Дополнительные сведения о предопределенных ролях базы данных агент SQL Server см. в разделе агент SQL Server предопределенных ролей базы данных.
Задания могут выполняться на локальном экземпляре SQL Server или быть распределены по нескольким экземплярам, работающим на предприятии. Для запуска заданий на нескольких серверах необходимо установить, по крайней мере, один главный сервер и один или несколько целевых. Дополнительные сведения о главных и целевых серверах см. в статье Автоматизация администрирования в масштабах предприятия
агент SQL Server записывают сведения о задании и шаге задания в журнале заданий.
Связанные задачи
| Description | Раздел |
|---|---|
| Описывает создание задания агента SQL Server. | Создание задания |
| Описывает переназначение владения заданиями агента SQL Server другому пользователю. | Give Others Ownership of a Job |
| Описывает настройку журнала заданий агента SQL Server. | Set Up the Job History Log |
См. также
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.
Отправить и просмотреть отзыв по
Создание задания
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
В этой статье описывается создание задания агента SQL Server в SQL Server с помощью среды SQL Server Management Studio, Transact-SQL или управляющих объектов SQL Server (SMO).
Чтобы добавить шаги заданий, расписаний, предупреждений и уведомлений, которые можно отправить операторам, см. ссылки на разделы руководства.
- Перед началом: ОграниченияБезопасность
- Для создания задания используетсяSQL Server Management Studio, Transact-SQLУправляющие объекты SQL Server
Перед началом
Ограничения
- Чтобы создать задание, пользователь должен быть членом одной из предопределенных ролей базы данных агент SQL Server или предопределенных ролей сервера sysadmin. Задание может быть изменено его владельцем или членом роли sysadmin . Дополнительные сведения о предопределенных ролях базы данных агент SQL Server см. в разделе агент SQL Server предопределенных ролей базы данных.
- Назначение задания другому имени входа не гарантирует того, что новый владелец обладает достаточными разрешениями для успешного запуска задания.
- Локальные задания кэшируются локальными агент SQL Server. Поэтому любые изменения неявно принудительно агент SQL Server повторно кэшировать задание. Так как агент SQL Server не кэширует задание до вызова sp_add_jobserver, это более эффективно для вызова sp_add_jobserver последней.
Безопасность
- Чтобы изменить владельца задания, необходимо быть системным администратором.
- Из соображений безопасности изменять определение задания может только его владелец или член роли sysadmin . Только члены предопределенной роли сервера sysadmin могут предоставлять права владения заданием другим пользователям, а также могут запускать любое задание, независимо от того, кто является его владельцем.
Примечание. Если вы изменяете владение заданием на пользователя, не являющегося членом предопределенной роли сервера sysadmin , и задание выполняет шаги задания, требующие учетных записей прокси-сервера (например, выполнение пакета SSIS), убедитесь, что пользователь имеет доступ к этой учетной записи прокси-сервера или в противном случае задание завершится ошибкой.
Разрешения
Использование среды SQL Server Management Studio
Создание задания агента SQL Server
- В обозревателе объектовщелкните знак «плюс», чтобы развернуть сервер, на котором нужно создать задание агента SQL Server.
- Щелкните знак «плюс», чтобы развернуть Агент SQL Server.
- Щелкните правой кнопкой мыши папку Задания и выберите пункт Создать задание….
- На странице Общие в диалоговом окне Создание задания измените общие свойства задания. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Общие»)
- На странице Действия задайте шаги задания. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Шаги»)
- На странице Расписания задайте расписания для задания. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Расписания»)
- На странице Предупреждения задайте предупреждения для задания. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Предупреждения»)
- На странице «Уведомления» задайте действия для Microsoft агент SQL Server выполнять после завершения задания. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Уведомления»).
- Страница Цели используется для управления целевыми серверами в задании. Дополнительные сведения о параметрах на этой странице см. в разделе Свойства задания — Создание задания (страница «Целевые объекты»).
- После завершения нажмите кнопку ОК.
Использование Transact-SQL
Создание задания агента SQL Server
- В обозревателе объектов подключитесь к экземпляру ядра СУБД.
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
USE msdb ; GO EXEC dbo.sp_add_job @job_name = N'Weekly Sales Data Backup' ; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'TSQL', @command = N'ALTER DATABASE SALES SET READ_ONLY', @retry_attempts = 5, @retry_interval = 5 ; GO EXEC dbo.sp_add_schedule @schedule_name = N'RunOnce', @freq_type = 1, @active_start_time = 233000 ; USE msdb ; GO EXEC sp_attach_schedule @job_name = N'Weekly Sales Data Backup', @schedule_name = N'RunOnce'; GO EXEC dbo.sp_add_jobserver @job_name = N'Weekly Sales Data Backup'; GO
Дополнительные сведения см. в разделе:
- sp_add_job (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
Использование управляющих объектов SQL Server
Создание задания агента SQL Server
Вызовите метод Create класса Job на любом языке программирования, таком как Visual Basic, Visual C# или PowerShell. Пример кода см. в разделе Планирование автоматических административных задач в агенте SQL Server.
Обратная связь
Были ли сведения на этой странице полезными?
MSSQL — получить список JOB с помощью SQL запроса

Пример вывода списка заданий JOB с помощью запроса из системных таблиц. Запрос выводит только те задания, которые созданы в Database Maintenance.
Если вам нужны все, то уберите «AND [sCAT].[name] = N’Database Maintenance'» из запроса.
USE msdb GO SELECT [sJOB].[name] AS [JobName] , [sDBP].[name] AS [JobOwner] , [sCAT].[name] AS [JobCategory] , [sJOB].[description] AS [JobDescription] , [sJSTP].[step_id] AS [JobStartStepNo] , [sJSTP].[step_name] AS [JobStartStepName] , [sJOB].[date_created] AS [JobCreatedOn] , [sJOB].[date_modified] AS [JobLastModifiedOn] , CASE [sJOB].[enabled] WHEN 1 THEN 'Yes' WHEN 0 THEN 'No' END AS [IsEnabled] , CASE WHEN [sSCH].[schedule_uid] IS NULL THEN 'No' ELSE 'Yes' END AS [IsScheduled] , CASE WHEN [freq_type] = 64 THEN 'Start automatically when SQL Server Agent starts' WHEN [freq_type] = 128 THEN 'Start whenever the CPUs become idle' WHEN [freq_type] IN (4, 8, 16, 32) THEN 'Recurring' WHEN [freq_type] = 1 THEN 'One Time' END [ScheduleType] , CASE [freq_type] WHEN 1 THEN 'One Time' WHEN 4 THEN 'Daily' WHEN 8 THEN 'Weekly' WHEN 16 THEN 'Monthly' WHEN 32 THEN 'Monthly - Relative to Frequency Interval' WHEN 64 THEN 'Start automatically when SQL Server Agent starts' WHEN 128 THEN 'Start whenever the CPUs become idle' END [Occurrence] , CASE [freq_type] WHEN 4 THEN 'Occurs every ' + CAST([freq_interval] AS VARCHAR(3)) + ' day(s)' WHEN 8 THEN 'Occurs every ' + CAST([freq_recurrence_factor] AS VARCHAR(3)) + ' week(s) on ' + CASE WHEN [freq_interval] & 1 = 1 THEN 'Sunday' ELSE '' END + CASE WHEN [freq_interval] & 2 = 2 THEN ', Monday' ELSE '' END + CASE WHEN [freq_interval] & 4 = 4 THEN ', Tuesday' ELSE '' END + CASE WHEN [freq_interval] & 8 = 8 THEN ', Wednesday' ELSE '' END + CASE WHEN [freq_interval] & 16 = 16 THEN ', Thursday' ELSE '' END + CASE WHEN [freq_interval] & 32 = 32 THEN ', Friday' ELSE '' END + CASE WHEN [freq_interval] & 64 = 64 THEN ', Saturday' ELSE '' END WHEN 16 THEN 'Occurs on Day ' + CAST([freq_interval] AS VARCHAR(3)) + ' of every ' + CAST([freq_recurrence_factor] AS VARCHAR(3)) + ' month(s)' WHEN 32 THEN 'Occurs on ' + CASE [freq_relative_interval] WHEN 1 THEN 'First' WHEN 2 THEN 'Second' WHEN 4 THEN 'Third' WHEN 8 THEN 'Fourth' WHEN 16 THEN 'Last' END + ' ' + CASE [freq_interval] WHEN 1 THEN 'Sunday' WHEN 2 THEN 'Monday' WHEN 3 THEN 'Tuesday' WHEN 4 THEN 'Wednesday' WHEN 5 THEN 'Thursday' WHEN 6 THEN 'Friday' WHEN 7 THEN 'Saturday' WHEN 8 THEN 'Day' WHEN 9 THEN 'Weekday' WHEN 10 THEN 'Weekend day' END + ' of every ' + CAST([freq_recurrence_factor] AS VARCHAR(3)) + ' month(s)' END AS [Recurrence] , CASE [freq_subday_type] WHEN 1 THEN 'Occurs once at ' + STUFF(STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') WHEN 2 THEN 'Occurs every ' + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Second(s) between ' + STUFF(STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') + ' & ' + STUFF(STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') WHEN 4 THEN 'Occurs every ' + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Minute(s) between ' + STUFF(STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') + ' & ' + STUFF(STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') WHEN 8 THEN 'Occurs every ' + CAST([freq_subday_interval] AS VARCHAR(3)) + ' Hour(s) between ' + STUFF(STUFF(RIGHT('000000' + CAST([active_start_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') + ' & ' + STUFF(STUFF(RIGHT('000000' + CAST([active_end_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') END [Frequency] , [sSCH].[name] AS [JobScheduleName] , LastRun = CONVERT(DATETIME, RTRIM(run_date) + ' ' + STUFF(STUFF(REPLACE(STR(RTRIM(h.run_time),6,0),' ','0'),3,0,':'),6,0,':')) , CASE [sJSTP].Last_run_outcome WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeeded' WHEN 2 THEN 'Retry' WHEN 3 THEN 'Canceled' WHEN 5 THEN 'Unknown' END AS LastRunStatus , LastRunDuration = STUFF(STUFF(REPLACE(STR([sJSTP].last_run_duration,7,0),' ','0'),4,0,':'),7,0,':') , MaxDuration = STUFF(STUFF(REPLACE(STR(l.run_duration,7,0),' ','0'),4,0,':'),7,0,':') , NextRun = CONVERT(DATETIME, RTRIM(NULLIF([sJOBSCH].next_run_date, 0)) + ' ' + STUFF(STUFF(REPLACE(STR(RTRIM([sJOBSCH].next_run_time),6,0),' ','0'),3,0,':'),6,0,':')) , CASE [sJOB].[delete_level] WHEN 0 THEN 'Never' WHEN 1 THEN 'On Success' WHEN 2 THEN 'On Failure' WHEN 3 THEN 'On Completion' END AS [JobDeletionCriterion] , [sSVR].[name] AS [OriginatingServerName] , [sJSTP].subsystem AS Subsystem , [sJSTP].command AS Command , h.message AS Message FROM [msdb].[dbo].[sysjobs] AS [sJOB] LEFT JOIN [msdb].[sys].[servers] AS [sSVR] ON [sJOB].[originating_server_id] = [sSVR].[server_id] LEFT JOIN [msdb].[dbo].[syscategories] AS [sCAT] ON [sJOB].[category_id] = [sCAT].[category_id] LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sJSTP] ON [sJOB].[job_id] = [sJSTP].[job_id] AND [sJOB].[start_step_id] = [sJSTP].[step_id] LEFT JOIN [msdb].[sys].[database_principals] AS [sDBP] ON [sJOB].[owner_sid] = [sDBP].[sid] LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [sJOBSCH] ON [sJOB].[job_id] = [sJOBSCH].[job_id] LEFT JOIN [msdb].[dbo].[sysschedules] AS [sSCH] ON [sJOBSCH].[schedule_id] = [sSCH].[schedule_id] LEFT JOIN ( SELECT job_id, instance_id = MAX(instance_id), MAX(run_duration) AS run_duration FROM msdb.dbo.sysjobhistory GROUP BY job_id ) AS l ON sJOB.job_id = l.job_id LEFT JOIN msdb.dbo.sysjobhistory AS h ON h.job_id = l.job_id AND h.instance_id = l.instance_id ORDER BY [JobName]
- [JobName]: название задания агента SQL Server.
- [JobOwner]: владелец задания.
- [JobCategory]: категория, к которой относится задание, например моментальный снимок репликации, обслуживание базы данных, отправка журналов и т.д.
- [JobDescription]: описание задания.
- [JobStartStepNo]: номер шага, из которого задано задание для запуска.
- [JobStartStepName]: имя шага, с которого задание начинается.
- [JobCreatedOn]: дата и время создания задания.
- [JobLastModifiedOn]: дата и время последнего изменения задания.
- [IsEnabled]: индикатор, показывающий, включено ли задание.
- [IsScheduled]: индикатор, указывающий, запланировано ли задание или нет.
- [ScheduleType]: тип расписания.
- [Occurrence]: график задания, такого как Ежедневный, Еженедельный, Ежемесячный и т.д.
- [Recurrence]: повторение графика.
- [Frequency]: как часто задание должно выполняться.
- [JobScheduleName]: имя расписания, связанного с заданием.
- [LastRun]: дата и время выполнения задания в последний раз (соответствует самому последнему запуску).
- [LastRunStatus]: состояние или результат последнего запуска задания.
- [LastRunDuration]: Продолжительность последнего выполнения задания.
- [MaxDuration]: максимальная продолжительность задания.
- [NextRun]: дата и время следующего запуска.
- [JobDeletionCriterion]: критерий для удаления задания.
- [OriginatingServerName]: сервер, с которого выполнялось задание.
- [Subsystem]: тип операции, например, интеграция с SQL Server Пакет услуг, Transact-SQL Script (T-SQL), ActiveX Script и т.д.
- [Command]: фактическая команда, которая будет выполнена.
- [Message]: информация о успехе/неудаче работы и т.д.
Online Documentation for SQL Manager for SQL server
Задание — это определенный ряд операций, называемых шагами, которые последовательно выполняет агент SQL Server.
Для создания, удаления и редактирования заданий предназначен специальный инструмент — Jobs . Чтобы открыть это окно, нужно выбрать пункт главного меню программы Services | SQL Server Agent | Jobs .

В основном окне отображается список созданных пользователем заданий. Работать с ними можно с помощью кнопок, расположенных на панелях инструментов.

В основном окне отображается список всех заданий. Для редактирования заданий существует специальный инструмент — редактор заданий. Чтобы открыть задание в редакторе необходимо два раза щелкнуть по нему мышкой.
Редактор заданий позволяет задавать необходимые свойства заданий. Открывается при создании или редактировании объекта.
Все свойства объекта задаются на следующих вкладках редактора:
Add job — добавить задание,
Edit job — редактировать задание,
Delete job — удалить задание,
Start job — начать выполнение задания,
Stop job — остановить выполнение задания,
Refresh — обновить содержимое списка,
Columns — настроить вид главного окна,
Export list — экспортировать список пакетов в файл с помощью мастера экспорта.
Full version (for Windows)
Lite version (for Windows)
Важно: Посмотреть наличие функций в версиях SQL Manager Full и Lite вы можете в сравнительной таблице характеристик.