export SQL Server vers Excel avec OPENROWSET
-
05-09-2019 - |
Question
J'exporte exceller avec succès avec l'énoncé suivant:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\template.xls;',
'SELECT * FROM [SheetName$]')
select * from myTable
Y at-il moyen standard pour utiliser ce modèle spécifiant un nouveau nom pour la feuille Excel afin que le modèle ne fait jamais écrit ou dois-je trouver un travail autour?
Quelle est la meilleure façon de le faire dans l'expérience des gens?
La solution
Il faudrait utiliser SQL dynamique. OPENROWSET
etc ne permet littéraux en tant que paramètres.
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
')
Souvenez-vous: le chemin est relatif à l'endroit où est en cours d'exécution SQL Server
Autres conseils
Pourriez-vous pas faire une copie de votre modèle d'abord, puis passez le nom de fichier de la copie dans OPENROWSET?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow