exportação SQL Server para o Excel com OPENROWSET
-
05-09-2019 - |
Pergunta
Estou a exportar com sucesso para excel com a seguinte declaração:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\template.xls;',
'SELECT * FROM [SheetName$]')
select * from myTable
Existe alguma maneira padrão para usar este modelo especificando um novo nome para a folha de excel para que o modelo não é gravado ou tenho de chegar a algum trabalho-around?
Qual é a melhor maneira de fazer isso na experiência pessoas?
Solução
Você teria que usar SQL dinâmico. OPENROWSET
etc só permite literais como parâmetros.
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
')
Lembre-se: o caminho é relativo ao local onde o SQL Server está sendo executado
Outras dicas
Não foi possível fazer uma cópia do seu modelo em primeiro lugar, em seguida, passar o nome do arquivo de cópia em OPENROWSET?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow