Выполнение хранимой процедуры iIn SQL Server Agent с автоматическим параметром для всех шагов - PullRequest
0 голосов
/ 13 декабря 2018

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

Однако для некоторых из этих процедур требуется заполнить параметр с именем LastEndOFMonthDate, где вы указываете дату (т. Е. 24/03/2018) в параметре.Этот параметр будет иметь одинаковое значение (дату) для каждого шага задания.Мне было интересно, как я могу автоматизировать аспект параметров, чтобы мне не приходилось вручную вводить одно и то же значение параметра для каждого шага хранимой процедуры / задания, который требовал этого?

Вот пример хранимой процедуры, которую я выполняю как один из 27 этапов задания:

exec [dbo].[sp_05_UpdateDataMart_26_Create_JMIDataMart_With_Demo_and_Total] @LastEndOfMonthDate    

Если кто-нибудь может предоставить простой способ автоматизации аспекта параметров этого, ябыл бы очень признателен.

1 Ответ

0 голосов
/ 13 декабря 2018

Во-первых, вам не нужно создавать 27 steps для выполнения 27 procedures, вы можете сложить их все в 1 step и вычислить время parameter 1 в качестве первой строки step.

Вы также можете написать wrapping procedure (main), который будет вызывать все ваши 27 sp, используя parameter, переданный в main.

Если необходимо иметь возможность выйти из целогоjob при ошибках в некоторых procedures и в других случаях продолжить, вместо 27 steps вы можете сделать 1 SSIS package с 1 параметром на уровне пакета и назначить правильные действия для success / complete / failure на каждые 27 ExecuteSQLTasks в пределах package.

Последняя идея (требуется переписать ваши процедуры) - получить parameter из table.Каждый процесс должен прочитать параметр в качестве первого шага из того же table.Таким образом, вы можете сохранить значение DeltaDays (если я вас правильно понял, вы хотите выполнить свои прокы на дату «N дней назад»), поэтому вы поместите это значение в table один раз, и все прокы прочитаютоцените и рассчитайте правильную дату самостоятельно, и вам не нужно ничего вводить, просто запланируйте эти процедуры.

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