从sql server导出数据到excel不起作用

时间:2015-03-16 12:59:23

标签: sql-server excel openrowset

我使用以下代码将数据导出到excel文件。当excel文件为空时,这工作正常。但是当我将字段更新为null时,插入查询会成功执行,但excel显示为空白。

update openrowset('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 
'select Column1,Column2,Column3 FROM [Sheet1$]')
set  Column1=null,Column2=null,Column3=null


insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 'SELECT * FROM [Sheet1$]') 
select Column1,Column2,Column3 from table_Name 

我希望在写入文件之前先将文件设置为空白。

请帮助。

1 个答案:

答案 0 :(得分:0)

根据我在网上看到的内容, openrowset 是只读的,因此您需要使用 OPENDATESOURCE 。尝试这样的事情。

UPDATE OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$]
    SET Column1=null,Column2=null,Column3=null


INSERT INTO OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$]
   SELECT Column1,Column2,Column3 from table_Name