Übergeben einer Variablen über DTEXEC mit xp_cmdshell (SQL Server 2008)

Ich habe ein SSIS-Paket erstellt, das eine Excel-Datei in meine Datenbank importiert. Ich habe eine Variable erstellt, die ich als Excel-Dateipfad für den Excel Connection Manager verwenden möchte.

Der Name der Variablen in meinem SSIS-Paket lautet "ExcelSource" und soll den vollständigen Pfad darstellen. Ich möchte dies eventuell dynamisch einstellen, da der Dateiname ein Datum enthält.

Was ist der T-SQL-Code, um dies auszuführen? Folgendes habe ich bisher:

DECLARE @ssisstr VARCHAR(8000)
, @packagename VARCHAR(200)
, @servername VARCHAR(100)

DECLARE @params VARCHAR(8000)
--my package name
SET @packagename = 'MyPackage'
--my server name
SET @servername = 'MYCOMPUTER\MYSERVER'

SET @params = '/set \package.variables[ExcelSource].Value;"\"Y:\excelFile\Test File - June 11 2012.xlsx\""'

SET @ssisstr = 'dtexec /sq ' + @packagename + ' /ser ' + @servername + ' '
SET @ssisstr = @ssisstr + @params

DECLARE @returncode INT
EXEC @returncode = xp_cmdshell @ssisstr
SELECT @returncode

Antworten auf die Frage(1)

Ihre Antwort auf die Frage