Ich habe ein SSIS-Paket, das in einer SQL Server 2005-Datenbank gespeichert ist. Ich versuche, dieses Paket von einer gespeicherten Prozedur auf demselben Server auszuführen. Gibt es einen besseren Weg als exec master..xp_cmdshell 'dtexec / SQL ...
Ich stoße in (glaube ich) Probleme mit Dateisystemberechtigungen mit xp_cmdshell, das die Ausführung verhindert
Ich empfehle stattdessen, Agent zu verwenden:
sp_start_job
, um diesen Job zu starten Der Nachteil ist, dass Sie die Parameter auf diese Weise nicht einfach von SQL auf das Paket übertragen können.
Seit 2012 hat MSSQL einen SSIS-Katalog, in dem Sie Ihre Pakete dort ablegen können. Sie können dann ein Paket mit Parametern ausführen. Auf diese Weise können wir xp_cmdshell
vermeiden, um dtexec
oder sp_start_job
ohne Parameter aufzurufen. Schlüssel-SPs: create_execution
, set_execution_parameter_value
und start_execution
.
Von MSDN:
So führen Sie ein Paket auf dem Server mithilfe von SQL Server Management Studio
ausBereitstellen und Ausführen von SSIS Pakete mit gespeicherten Prozeduren
Tags und Links sql-server stored-procedures ssis