Поделиться через


sp_add_jobschedule (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Создает расписание для задания агент SQL Server.

Соглашения о синтаксисе Transact-SQL

Внимание

В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.

Синтаксис

sp_add_jobschedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @name = ] N'name'
    [ , [ @enabled = ] enabled ]
    [ , [ @freq_type = ] freq_type ]
    [ , [ @freq_interval = ] freq_interval ]
    [ , [ @freq_subday_type = ] freq_subday_type ]
    [ , [ @freq_subday_interval = ] freq_subday_interval ]
    [ , [ @freq_relative_interval = ] freq_relative_interval ]
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @active_start_time = ] active_start_time ]
    [ , [ @active_end_time = ] active_end_time ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @automatic_post = ] automatic_post ]
    [ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

Идентификационный номер задания, которому добавляется расписание. @job_id является уникальным идентификатором по умолчаниюNULL.

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @job_name = ] N'job_name'

Имя задания, которому добавляется расписание. @job_name — sysname с значением по умолчаниюNULL.

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @name = ] N'name'

Имя расписания. @name — sysname без значения по умолчанию.

[ @enabled = ] включен

Отображает текущее состояние расписания. @enabled имеет значение tinyint с значением по умолчанию 1 (включено). Если 0расписание не включено. Если расписание отключено, задание не выполняется.

[ @freq_type = ] freq_type

Это значение указывает, когда должно выполняться задание. @freq_type является int и может быть одним из следующих значений:

значение Описание
1 Однократно
4 Ежедневно
8 Weekly (Еженедельно);
16 Ежемесячная
32 Ежемесячно, относительно @freq_interval.
64 Запустите, когда запускается служба агент SQL Server.
128 Запускается при простое компьютера.

[ @freq_interval = ] freq_interval

Дни, когда выполняется задание. @freq_interval имеет значение int, при этом значение по умолчанию 0зависит от значения @freq_type, как указано в следующей таблице:

Значение @freq_type Влияние на @freq_interval
1 (один раз) @freq_interval не используется.
4 (ежедневно) Каждые @freq_interval дней.
8 (еженедельно) @freq_interval является одним или несколькими из следующих (в сочетании с логическим операторомOR):

1 = воскресенье
2 = понедельник
4 = вторник
8 = среда
16 = четверг
32 = пятница
64 = суббота
16 (ежемесячно) На @freq_interval день месяца.
32 (ежемесячный относительный) @freq_interval является одним из следующих вариантов:

1 = воскресенье
2 = понедельник
3 = вторник
4 = среда
5 = четверг
6 = пятница
7 = суббота
8 = день
9 = еженедельный день
10 = выходные дни
64(при запуске службы агент SQL Server) @freq_interval не используется.
128 @freq_interval не используется.

[ @freq_subday_type = ] freq_subday_type

Задает единицы для @freq_subday_interval. @freq_subday_type имеет значение int и может быть одним из следующих значений:

Значение Описание (единица измерения)
0x1 В указанное время
0x2 сек.
0x4 Минуты
0x8 часов

[ @freq_subday_interval = ] freq_subday_interval

Количество @freq_subday_type периодов между каждым выполнением задания. @freq_subday_interval имеет значение int с значением по умолчанию0.

[ @freq_relative_interval = ] freq_relative_interval

Далее определяет @freq_interval, если для @freq_type задано 32 значение (ежемесячное относительно).

@freq_relative_interval является int и может быть одним из следующих значений:

Значение Описание (единица измерения)
1 First
2 Second
4 Третья
8 Четвертая
16 Last

@freq_relative_interval указывает на вхождения интервала. Например, если для @freq_relative_interval 2задано значение , @freq_type задано 32значение , а для @freq_interval задано 3значение , запланированное задание будет выполняться во второй вторник каждого месяца.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Число недель или месяцев между запланированными выполнениями задания. @freq_recurrence_factor имеет значение int с значением по умолчанию0. @freq_recurrence_factor используется только в том случае, если для @freq_type задано 8значение , 16или 32.

[ @active_start_date = ] active_start_date

Дата начала выполнения задания. @active_start_date имеет значение int с значением по умолчаниюNULL. Дата форматируется как yyyyMMdd. Если задано @active_start_date , дата должна быть больше или равна 19900101.

После создания расписания просмотрите дату начала и убедитесь, что это правильная дата. Дополнительные сведения см. в разделе "Планирование даты начала" в разделе "Создание и присоединение расписаний к заданиям".

[ @active_end_date = ] active_end_date

Дата остановки выполнения задания. @active_end_date имеет значение int с значением по умолчанию99991231. Дата форматируется как yyyyMMdd.

[ @active_start_time = ] active_start_time

Время в любой день между @active_start_date и @active_end_date , чтобы начать выполнение задания. @active_start_time имеет значение int с значением по умолчанию000000. Время отформатировано как HHmmss в 24-часовом режиме.

[ @active_end_time = ] active_end_time

Время в любой день между active_start_date и @active_end_date завершения выполнения задания. @active_end_time имеет значение int с значением по умолчанию235959. Время отформатировано как HHmmss в 24-часовом режиме.

[ @schedule_id = ] schedule_id OUTPUT

Запланируйте идентификационный номер, назначенный расписанию, если он успешно создан. @schedule_id — это параметр OUTPUT типа int.

[ @automatic_post = ] automatic_post

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ = ] @schedule_uid "schedule_uid" OUTPUT

Уникальный идентификатор для расписания. @schedule_uid — это параметр OUTPUT типа uniqueidentifier.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Замечания

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

Разрешения

Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb базе данных:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Примеры

В следующем примере назначается расписание SaturdayReportsзаданий, которое выполняется каждую субботу в 2:00.

EXEC msdb.dbo.sp_add_jobschedule
    @job_name = N'SaturdayReports', -- Job name
    @name = N'Weekly_Sat_2AM', -- Schedule name
    @freq_type = 8, -- Weekly
    @freq_interval = 64, -- Saturday
    @freq_recurrence_factor = 1, -- every week
    @active_start_time = 20000 -- 2:00 AM