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?

Foi útil?

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
scroll top