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?