Любопытно, если это возможно. В настоящее время я нахожусь в процессе создания ряда SQL заданий агента сервера. Эти задания являются только SFTP-заданиями, которые передают файлы между серверами 2 разных клиентов, делая пит-стоп на моем локальном сервере для некоторой предварительной и последующей обработки. Да, эта установка с одной точки зрения излишне сложна, но она необходима с точки зрения безопасности. Все эти задания имеют одинаковую структуру:
- SFTP файл с сервера client1server на локальный сервер.
- Запуск исполняемого файла на файле
- SFTP обработанного файла to client2server.
- Подождите заранее определенное количество времени, чтобы client2 мог выполнить свой запрос на входе.
- SFTP файл ответов от client2server к локальному серверу.
- Выполнить второй исполняемый файл.
- 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. Я пришел сюда, чтобы спросить, возможно ли то, что я пытаюсь предпринять, и у меня просто запустилась ошибка задания мельницы, или если то, что я делаю, не разрешено.