Domanda

sto con successo l'esportazione in Excel con la seguente affermazione:

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

C'è un modo standard per utilizzare questo modello specificando un nuovo nome per il foglio di Excel in modo che il modello non viene mai scritto o devo venire con qualche lavoro intorno?

Qual è il modo migliore per farlo nelle persone esperienza?

È stato utile?

Soluzione

Dovreste usare SQL dinamico. OPENROWSET ecc consente solo letterali come parametri.

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
')
  

Ricordate: il percorso è relativo al punto in cui SQL Server è in esecuzione

Altri suggerimenti

Non potreste fare una copia del tuo modello, poi passare il nome del file della copia in OPENROWSET?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top