2009-06-26 2 views
0

Я пытаюсь программно добавить задачу Execute SQL из задачи сценария моего пакета SSIS. Я знаю, что класс Microsoft.SqlServer.Dts.Runtime.Package имеет коллекцию Executables, к которой я могу добавить свою новую задачу, но как получить ссылку на пакет Im внутри?SSIS получить ссылку на пакет

+0

Вы пытаетесь добавить в бегущего пакет? Я никогда не слышал, чтобы это сработало. –

ответ

1

Невозможно, SSIS не поддерживает самомодифицирующиеся пакеты.

Чтобы избежать попыток выполнить то, что вы пытаетесь сделать, код задачи не имеет доступа к API пакета, поэтому вы не можете получить ссылку на объект Package из задачи. Но даже если вы найдете способ проклинать это - результаты не предсказуемы, так как пакет не может модифицироваться во время выполнения.

Если вы могли бы описать, чего вы действительно хотите достичь (вместо того, чтобы просить конкретного способа сделать это), кто-то может найти способ сделать это. Возможно, вы можете использовать дочерний пакет - нормально ли модифицировать дочерний пакет до его выполнение, или, может быть, достаточно просто изменить некоторые переменные, которые используются в результате выполнения задачи Execute SQL позже в этом пакете?

0

Как говорит Майкл выше, невозможно выполнить то, что вы просите. Однако вы можете найти решение, установив переменные во время выполнения или включив или отключив определенные пакеты во время выполнения с помощью dtexec. Например:

dtexec /f e:\ssis\master.dtsx /set \Package\YourPackageName.Disable;True