Frage

ich erfolgreich bin Export mit der folgenden Aussage zu übertreffen:

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=C:\template.xls;', 
'SELECT * FROM [SheetName$]') 
select * from myTable

Gibt es eine standardisierte Möglichkeit diese Vorlage zu verwenden, um einen neuen Namen für die Excel-Tabelle spezifiziert, so dass die Vorlage nie geschrieben wird, oder muß mich mit einiger Behelfslösung kommen?

Was ist der beste Weg, dies in Menschen Erfahrung zu tun?

War es hilfreich?

Lösung

Sie müßten dynamische SQL verwenden. OPENROWSET etc erlaubt nur Literale als Parameter.

DECLARE @myfile varchar(800)

SET @myfile = 'C:\template.xls'

EXEC ('
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
''Excel 8.0;Database=' + @myfile + ';'', 
''SELECT * FROM [SheetName$]'') 
select * from myTable
')
  

Denken Sie daran: Der Pfad ist relativ zu dem SQL Server ausgeführt wird

Andere Tipps

Könnten Sie nicht eine Kopie der Vorlage zuerst machen, dann die Dateinamen in OPENROWSET Kopie übergeben?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top