Betrifft SQL-Server 2005
Hallo zusammen,
ich habe eine Tabellenwertfunktion, die über JET / OPENROWSET Daten aus Excel importiert.
OPENROWSET nimmt nur Konstanten, aber da die Funktion für mehrere Excel-Files gelten soll, muss ich dynamisches SQL benutzen:
Soweit kein Problem, wenn ich dann allerdings die Funktion aufrufe bekomme ich die Meldung:
Meldung 443, Ebene 16, Status 14, Prozedur xxx, Zeile 114
Ungültige Verwendung des Operators mit Nebenwirkungen oder Zeitabhängigkeit in 'EXECUTE STRING' innerhalb einer Funktion.
Ich verstehe, das ich so also nicht vorgehen kann. Aber was wäre denn ein Workaround?
Ich dachte an eine View, die aus der Excel-Datei liest, aber auch die bekomme ich nur mit statischen Excel Dateinamen hin...
Hat jemand eine Idee, wie ich aus unterschiedlichen Excel-Tabellen mittels OPENROWSET Daten auslesen und weiterverarbeiten kann?
Hallo zusammen,
ich habe eine Tabellenwertfunktion, die über JET / OPENROWSET Daten aus Excel importiert.
OPENROWSET nimmt nur Konstanten, aber da die Funktion für mehrere Excel-Files gelten soll, muss ich dynamisches SQL benutzen:
Code:
SET @sql1 = 'INSERT INTO @MyTable
SELECT F2,F3,F4
FROM '
SET @openrowset = 'OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;IMEX=1;DATABASE=\\server\xls_import\' + @filename + ''',''select * from [temp$]'') as xls'
EXEC (@sql1 + @openrowset) <-- Zeile 114
Soweit kein Problem, wenn ich dann allerdings die Funktion aufrufe bekomme ich die Meldung:
Meldung 443, Ebene 16, Status 14, Prozedur xxx, Zeile 114
Ungültige Verwendung des Operators mit Nebenwirkungen oder Zeitabhängigkeit in 'EXECUTE STRING' innerhalb einer Funktion.
Ich verstehe, das ich so also nicht vorgehen kann. Aber was wäre denn ein Workaround?
Ich dachte an eine View, die aus der Excel-Datei liest, aber auch die bekomme ich nur mit statischen Excel Dateinamen hin...
Hat jemand eine Idee, wie ich aus unterschiedlichen Excel-Tabellen mittels OPENROWSET Daten auslesen und weiterverarbeiten kann?