Создайте хранимую процедуру, которая генерирует SQL заданий агента сервера - PullRequest
0 голосов
/ 19 февраля 2020

Любопытно, если это возможно. В настоящее время я нахожусь в процессе создания ряда SQL заданий агента сервера. Эти задания являются только SFTP-заданиями, которые передают файлы между серверами 2 разных клиентов, делая пит-стоп на моем локальном сервере для некоторой предварительной и последующей обработки. Да, эта установка с одной точки зрения излишне сложна, но она необходима с точки зрения безопасности. Все эти задания имеют одинаковую структуру:

  1. SFTP файл с сервера client1server на локальный сервер.
  2. Запуск исполняемого файла на файле
  3. SFTP обработанного файла to client2server.
  4. Подождите заранее определенное количество времени, чтобы client2 мог выполнить свой запрос на входе.
  5. SFTP файл ответов от client2server к локальному серверу.
  6. Выполнить второй исполняемый файл.
  7. SFTP обработанный файл ответов обратно на client1server.

Довольно прямо.

Существует только несколько значений, которые изменяются между каждым заданием: - Путь к файлу ввода-вывода на client1server - Путь к файлу ввода-вывода на client2server - Каталог на локальном сервере

Эти задания не являются сложный, поэтому при необходимости я могу просто создать их все вручную. Это кажется ненужным количеством работы, хотя. У меня была мысль, что, возможно, я смогу создать хранимую процедуру, которая сгенерирует скрипт SQL, который создает работу, и эта хранимая процедура может просто принимать переменные, которые меняются от работы к работе. Это выполнимо?

В общем, вот что я думаю:

CREATE PROCEDURE create_ftp_interface_job
    @client1input_fp nvarchar(100),
    @client1output_fp nvarchar(100),
    @client2input_fp nvarchar(100),
    @client2output_fp nvarchar(100),
    etc...

AS


<SQL Script for creating SQL Server Agent jobs, with parameters inserted>


GO

Я пробовал раннюю версию этого, и у меня, похоже, возникают проблемы со ссылками на переменные, которые я объявляю в определении хранимой процедуры внутри сценария задания SSA. Я пришел сюда, чтобы спросить, возможно ли то, что я пытаюсь предпринять, и у меня просто запустилась ошибка задания мельницы, или если то, что я делаю, не разрешено.

1 Ответ

0 голосов
/ 20 февраля 2020

Вы можете использовать msdb.dbo.sp_add_job, msdb.dbo.sp_add_jobstep, msdb.dbo.sp_update_job, msdb.dbo.sp_add_jobschedule и msdb.dbo.sp_add_jobserver для создания и управления SQL агентскими заданиями программно.

На самом деле есть еще больше хранимых процедур здесь , которые относятся к управлению SQL агентскими заданиями.

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