将SQL查询数据导出到Excel

我有一个查询返回一个非常大的数据集。 我无法将其复制并粘贴到我通常使用的Excel中。 我一直在做一些如何直接导出到Excel工作表的研究。 我在运行Microsoft Server 2003的服务器上运行SQL SERVER 2008.我试图使用Microsoft.Jet.OLEDB.4.0数据提供程序和Excel 2007.我已经拼凑了一小段代码,看起来像这样从我在例子中见过。

INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Working\Book1.xlsx;Extended Properties=EXCEL 12.0;HDR=YES') SELECT productid, price FROM dbo.product 

然而,这是行不通的,我收到一个错误消息说

“关键字”SELECT“附近的语法错误”。

有没有人有任何想法如何做到这一点或可能是一个更好的方法?

我不知道这是你在找什么,但是你可以像下面这样将结果导出到Excel中:

在结果窗格中,单击左上angular的单元格以突出显示所有logging,然后右键单击左上angular的单元格并单击“将结果另存为”。 其中一个导出选项是CSV。

你也可以这样做:

 INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product') 

最后,您可以考虑使用SSIS(replaceDTS)进行数据导出。 这里是一个教程的链接:

http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm

如果您只需要导出为ex​​cel,则可以使用导出数据向导。 右键单击数据库,任务 – >导出数据。

我有一个类似的问题,但扭曲 – 上面列出的解决scheme,当结果集来自一个查询,但在我的情况下,我有多个单独的select查询,我需要导出到Excel的结果。 下面只是一个例子来说明,尽pipe我可以name in条款中做一个name in

 select a,b from Table_A where name = 'x' select a,b from Table_A where name = 'y' select a,b from Table_A where name = 'z' 

该向导允许我从一个查询中导出结果,但在这种情况下不是来自不同查询的所有结果。

当我研究,我发现我们可以禁用结果到网格,并启用结果到文本。 所以,按下Ctrl + T,然后执行所有的语句。 这应该显示在输出窗口中的文本文件的结果。 您可以将文本操作为制表符分隔的格式,以便导入到Excel中。

您也可以按Ctrl + Shift + F将结果导出到一个文件 – 导出为一个.rpt文件,可以使用文本编辑器打开并操作Excel导入。

希望这可以帮助其他有类似问题的人。