Вы можете написать пакет служб SSIS, который выполняет все эти шаги.
Создайте переменную с именем myResult. Вид >> Другие окна >> переменные. Убедитесь, что вы находитесь на уровне потока управления пакета и не нажали на какое-то задание / шаг. Вы хотите, чтобы эта переменная находилась на уровне пакета. Задайте ему тип данных Int32 и установите значение по умолчанию в качестве кода ошибки.
Выполнить задачу SQL, установить для свойства набора результатов значение «Одна строка». Поместите результат в переменную на панели Result Set. Установите имя результата = 0 и имя переменной = пользователь :: myResult.
Проверьте результат, дважды щелкнув строку между этими двумя задачами SQL. Установите для оценки выражения и установите выражения следующим образом: @myResult == 0
Выполнить следующую задачу SQL, поместив результат в ту же переменную
Результат проверки, как и раньше
Выполнить пакетную задачу (выполнить SSIS)
Продолжать по мере необходимости ...
Вы можете запускать пакеты служб SSIS с помощью DTEXEC.exe среды выполнения . Там указаны коды возврата, так что вы можете интегрировать их в другой процесс.
- Дополнительные вещи -
Поскольку вы хотите, чтобы это было универсальным для многих случаев, вы можете либо написать некоторый код, который будет извлекать тестовый пример и отдельные шаги из таблицы, либо вы можете сделать то же самое в SSIS (возможно!)
В SSIS вы можете создать контейнер цикла по каждому элементу, который будет работать с результирующим набором ADO, хранящимся в переменной. В зависимости от «типа шага» - SQLCMD или пакета служб SSIS, вы можете перейти к выполнению пакета или выполнить инструкцию SQL, используя выражения для изменения соответствующей информации, такой как путь к пакету или инструкция sql. Для простоты вам понадобится поле для сервера, sqlcmd и packagename для каждого шага - для задачи SQL не требуется имя пакета, а для задачи ssis не требуется sqlcmd.