Можно ли создать расписание заданий с помощью сценария T-SQL (а не мастера создания расписаний агента SQL Server)? - PullRequest
4 голосов
/ 14 июля 2011

Мне нужно создать скрипт, который будет выполняться в запланированное время.Поскольку мой клиент не знаком с SQL Server, я хотел бы создать расписание на своем компьютере в соответствии с требованиями моего клиента с помощью мастера создания расписаний агента SQL Server, а затем создать сценарий созданного расписания (который я отправлю клиенту).

Как создать расписание заданий T-SQL без использования мастера создания расписаний агента SQL Server?

Ответы [ 5 ]

6 голосов
/ 14 июля 2011

Вы можете использовать Management Studio для получения сценария создания.

Создать работу в студии управления

Затем щелкните правой кнопкой мыши на задании и в всплывающем меню выберите Сценарий: Задание как -> Создать в -> Окно нового редактора запросов.

Измените детали скрипта в соответствии с вашими потребностями

3 голосов
/ 24 июля 2017

Чтобы создать задание агента SQL Server с помощью Transact-SQL:

  • Выполните sp_add_job для создания задания.
  • Выполните sp_add_jobstep для создания одного или нескольких шагов задания.
  • Выполните sp_add_schedule для создания расписания.
  • Выполните sp_attach_schedule, чтобы прикрепить расписание к заданию.
  • Выполните sp_add_jobserver, чтобы установить сервер для задания.

Подробнее здесь .

1 голос
/ 10 августа 2012

Я вижу, что вы приняли вышеприведенный ответ, но если вы пытаетесь создать расписание, которое именно соответствует вашему вопросу, а не работе, вы используете sp_add_schedule .

1 голос
/ 14 июля 2011

Вы можете запустить SQL Profiler , запустить шаги мастера и посмотреть, какой SQL был выполнен в фоновом режиме, используя это как основу для подготовки ваших сценариев.

0 голосов
/ 03 июля 2018

Если вы знаете название задания и хотите добавить новое расписание, а затем добавить его в несколько заданий, вы можете написать его таким образом (это пример частоты 1x / день в 02:00, добавленной к 2вакансии)

USE [msdb]
GO

DECLARE @schedule_id int, @job_id uniqueidentifier

-- create the schedule
EXEC msdb.dbo.sp_add_schedule @schedule_name=N'name of the schedule', 
        @enabled=1, 
        @freq_type=4, 
        @freq_interval=1, 
        @freq_subday_type=1, 
        @freq_subday_interval=0, 
        @freq_relative_interval=0, 
        @freq_recurrence_factor=1, 
        @active_start_date=20180703, 
        @active_end_date=99991231, 
        @active_start_time=020000, 
        @active_end_time=235959, @schedule_id = @schedule_id OUTPUT

-- add it to job 1
set @job_id = (select job_id from msdb.dbo.sysjobs where name='Name of job 1')
EXEC msdb.dbo.sp_attach_schedule @job_id=@job_id,@schedule_id= @schedule_id

-- add it to job 2
set @job_id = (select job_id from msdb.dbo.sysjobs where name='Name of job 2')
EXEC msdb.dbo.sp_attach_schedule @job_id=@job_id,@schedule_id= @schedule_id

GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...