2015-10-20 9 views
0

Основная цель моего пакета SSIS - прочитать код sql, а затем выполнить. Задача сценария будет читать код в файле SQL, а затем передать код в глобальную переменную. Задача SQL выполняет код, хранящийся в переменной. Это отлично работает, но я использую одну переменную для хранения кода sql. Из-за этого я не могу выполнить несколько шагов параллельно. Есть ли способ избежать создания нескольких переменных для хранения кода SQL? Будут ли работать локальные переменные, и если да, то как? enter image description hereSSIS - Локальные переменные

+0

Нет, если вы хотите, чтобы они запускались одновременно, два сценария SQL должны храниться в другой памяти. – saarrrr

+0

Как насчет назначения SQL-запроса SQL Task по имени? И.Е. Используя «Script», чтобы назначить SQL-запрос «SQL Task» и «SQL Task 1». В моем сценарии я задал бы задачу sql по имени и назначил ее sql-инструкцию. Я думаю, что DTS 2000 имеет что-то вроде этого. – SSISUser

+0

Я думаю, вы говорите о выражениях, которые используют переменные. Поэтому, если вы хотите, чтобы они запускались одновременно, вам нужно хранить SQL в другой памяти. Почему вы так против создания 2 переменных вместо 1? – saarrrr

ответ

0

Я хотел бы создать пакет (назовем его X) просто сделать один:

script -> sql task 

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

Затем создайте основной пакет, который вызывает несколько пакетов X. Затем вы можете запускать их параллельно.

Поскольку дочерний пакет не может вернуть значение в основной пакет (при необходимости), вам необходимо разработать альтернативные способы передачи значений обратно в основной пакет. Например, путем обновления значений в таблице. Основной пакет ожидает завершения X, поэтому основной пакет может выполнять больше задач после.

Смежные вопросы