Экспорт SQL Server в Excel с помощью OPENROWSET
-
05-09-2019 - |
Вопрос
Я успешно экспортирую в Excel со следующим утверждением:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\template.xls;',
'SELECT * FROM [SheetName$]')
select * from myTable
Есть ли какой-либо стандартный способ использовать этот шаблон, указав новое имя для листа Excel, чтобы шаблон никогда не записывался, или мне нужно придумать какой-то обходной путь?
Каков наилучший способ сделать это по опыту людей?
Решение
Вам придется использовать динамический SQL. OPENROWSET
и т.д. допускает только литералы в качестве параметров.
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
')
Помнить:путь указан относительно того, где работает SQL Server
Другие советы
Не могли бы вы сначала сделать копию своего шаблона, а затем передать имя файла копии в OPENROWSET?
Не связан с StackOverflow