2009-06-26 14 views
0

Ich versuche programmgesteuert eine SQL ausführen Aufgabe innerhalb einer Skriptaufgabe meines SSIS-Pakets hinzuzufügen. Ich weiß, dass die Microsoft.SqlServer.Dts.Runtime.Package-Klasse eine Executables-Auflistung hat, der ich meine neue Aufgabe hinzufügen kann, aber wie bekomme ich einen Verweis auf das Paket Im innerhalb?SSIS erhalten Verweis auf Paket

+0

Sie versuchen, den Lauf Paket hinzufügen? Ich habe nie gehört, dass das funktioniert. –

Antwort

1

Es ist nicht möglich, SSIS unterstützt selbstmodifizierende Pakete nicht.

Um zu verhindern, dass Sie versuchen, das zu tun, was Sie versuchen, hat der Aufgabencode keinen Zugriff auf die Paket-API. Daher können Sie keinen Verweis auf das Paketobjekt von einer Aufgabe abrufen. Aber selbst wenn Sie einen Weg finden, dies zu umgehen - die Ergebnisse sind nicht vorhersehbar, da das Paket sich zur Laufzeit nicht selbst modifizieren darf.

Wenn Sie beschreiben könnten, was Sie wirklich erreichen möchten (anstatt nach einem bestimmten Weg zu fragen), könnte jemand einen Weg finden, es zu tun. Vielleicht können Sie Kind-Paket verwenden - es ist OK, Kind-Paket vor seine Ausführung zu ändern, oder vielleicht ist es genug, nur einige Variablen, die von SQL-Task ausführen später in diesem Paket verwendet werden?

0

Wie Michael oben sagt, ist es nicht möglich zu tun, was Sie fragen. Sie können jedoch möglicherweise eine Lösung finden, indem Sie zur Laufzeit Variablen festlegen oder bestimmte Pakete zur Laufzeit mit dtexec aktivieren oder deaktivieren. Zum Beispiel:

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