SQL Server使用OPENROWSET导出到Excel
我成功出口到以下声明:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\template.xls;', 'SELECT * FROM [SheetName$]') select * from myTable
是否有任何标准的方式来使用这个模板指定一个新的名称为Excel表,使模板永远不会被写入或我必须想出一些解决办法?
在用户体验中做到这一点的最佳方式是什么?
你必须使用dynamicSQL。 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 ')
请记住:该path是相对于SQL Server正在运行的位置
难道你不能先制作你的模板的副本,然后将副本的文件名传入OPENROWSET?