将 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’ 附近的语法不正确”。

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

原文由 JBone 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

我不知道这是否是您要查找的内容,但您可以像这样将结果导出到 Excel:

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

你也可以试一试:

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

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

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

== 更新 #1 ==

要将结果保存为带有列标题的 CSV 文件,可以按照以下步骤操作:

  1. 转到工具->选项
  2. 查询结果->SQL Server->结果到网格
  3. 勾选“复制或保存结果时包括列标题”
  4. 单击确定。
  5. 请注意,新设置不会影响任何现有的查询选项卡——您需要打开新选项卡和/或重新启动 SSMS。

原文由 James Johnson 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您只是需要导出到 excel,您可以使用导出数据向导。右键单击数据库,任务->导出数据。

原文由 brian 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题