Я хочу ИСПОЛЬЗОВАТЬ пакет SSIS для данных ETL в течение нескольких дней, я написал несколько T- SQL для вызова пакета SSIS, принцип заключается в том, что ETL в первый день завершен, а затем может работать во второй день .. .
Компонент «Выполнить SQL задача» ниже находится в контейнере для l oop, а SQL примерно так:
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'MAIN.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'RE_RUN_LOGIC_DEMO', @project_name=N'BUSINESS_ETL_STEVEN', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
--WAITFOR DELAY '00:00:07.000'
Проблема в том, что я закомментирую последняя строка для приведенного выше кода, ETL работает не так, как ожидалось, мне нужно добавить оператор WAITFOR, это просто демонстрация, но в реальном проекте я не знаю, сколько времени пакет SSIS запускается указанным выше T- SQL потратит, поэтому я не думаю, что WAITFOR DELAY - хорошее решение, для этого примера есть способ проверить, завершен ли пакет SSIS в T- SQL, чтобы я мог напишите после него какой-нибудь другой код, но в зависимости от того, завершен ли запуск пакета SSIS выше, например, выполните некоторые процедуры или вызовите другие пакеты SSIS.