SQL服务器导出到Excel与OPENROWSET
问题描述:
我成功出口用下面的语句擅长:SQL服务器导出到Excel与OPENROWSET
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运行
+0
这很好 - 但我仍然必须首先将模板放在那里,所以我不能在SQL中想出名称,我必须先以编程方式创建电子表格。 – JohnIdol 2009-05-26 12:01:08
答
你不能让你的模板的复制,在复制的文件名传递到OPENROWSET?
哦,幸运的人。我已经花了2个小时试图运行这个并获得各种错误。 (使用2008SP2) – 2015-10-06 14:24:26