200

我正在使用 SQL Server Management Studio。

我希望将查询结果保存到 excel 文件中。

我选择“另存为”,然后保存到可以在 excel 中打开的 CSV 文件。一切都很好,除了我缺少列标题,有什么想法可以导出它们吗?

4

10 回答 10

303

Tools> Options> Query Results> SQL Server> Results to Text (or Grid if you want)>Include columns headers in the result set

更改此选项后,您可能需要关闭并重新打开 SSMS。

在 SQL 编辑器工具栏上,您可以选择保存到文件而无需重新启动 SSMS

于 2012-05-20T20:57:23.410 回答
38

尝试导出向导。在此示例中,我选择了整个表,但您也可以轻松地指定查询:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

(您也可以在此处指定查询)

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2012-05-20T21:29:37.637 回答
36

另一种可能性是使用剪贴板将结果直接复制并粘贴到 Excel 中。请注意常规类型的 Excel 列,因为它们有时会产生不可预测的结果,具体取决于您的数据。CTL-A结果网格中的任意位置,然后右键单击:

在此处输入图像描述

如果您在使用 Excel 的常规格式进行不需要的转换时遇到问题,请在粘贴之前选择 Excel 中的空白列并将格式更改为“文本”。

于 2012-05-20T21:56:48.653 回答
12

至少在 SQL Server 2012 中,您可以在查询窗口中右键单击并选择查询选项。从那里您可以为网格和/或文本选择包含标题,并让另存为以您想要的方式工作,而无需重新启动 SSMS。

您仍然需要在菜单栏中的工具->选项中对其进行更改,以使新的查询窗口默认使用这些设置。

于 2014-06-02T22:47:24.310 回答
7

Visual Studio 中也存在同样的问题,以下是解决方法:

去:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

现在单击复选框为真:“复制或保存结果时包括列标题”

于 2015-11-16T18:24:01.127 回答
6

通过单击左上角选择您的结果,右键单击并选择“使用标题复制”。粘贴到excel中。完毕!

于 2014-09-04T19:11:17.070 回答
6

如果您想为将来在 SQL Server Management Studio (SSMS) 中打开的所有查询会话永久设置此选项,建议在 @Diego 接受的答案中更改的设置可能会很好。通常情况并非如此。此外,更改此设置需要重新启动 SQL Server Management Studio (SSMS) 应用程序。如果您有许多未保存的打开查询会话窗口并且您正在进行一些调试,这又是一种“不太好”的体验。

SQL Server 提供了一个非常灵活的选项,可以在每个会话的基础上进行更改,非常快速、方便和方便。我正在使用查询选项窗口详细说明以下步骤:

  1. 在查询编辑器窗口中单击鼠标右键 > 单击Query Options...上下文菜单底部的 ,如下所示:

在此处输入图像描述

  1. 在左侧导航窗格中选择Results> 。Grid选中Include column headers when copying or saving the results右窗格中的复选框,如下所示:

在此处输入图像描述

就是这样。您当前的会话将立即生效您的设置,而无需重新启动 SSMS。此外,此设置不会传播到任何未来的会话。在每个会话的基础上有效地更改此设置的噪音要小得多。

于 2019-03-18T09:35:03.623 回答
2

在寻找一种方法来使 SSMS 在导出结果时正确转义 CSV 分隔符时到达这里。

你猜怎么了?- 这其实是一个选项,默认是不勾选的。因此,默认情况下,您会得到损坏的 CSV 文件(甚至可能没有意识到,尤其是如果您的导出很大并且您的数据通常没有逗号) - 您必须进入并单击一个复选框,以便您的 CSV 导出正确!

对我来说,这似乎是一个极其愚蠢的设计选择,也是对微软总体软件方法的恰当比喻(“默认情况下被破坏,需要毫无意义的仪式化操作才能使琐碎的功能发挥作用”)。

但是,如果有人可以给我一个有效的现实生活理由来支持这个选项的存在(即它有用的实际场景),我很乐意向受访者选择的慈善机构捐赠 100 美元。

于 2018-08-27T11:07:16.340 回答
2

在 SQL Server 2014 Management Studio 中,设置位于:

工具 > 选项 > 查询结果 > SQL Server > 结果到文本 > 在结果集中包含列标题。

于 2018-09-07T00:21:48.397 回答
0

我也面临同样的问题。当我在查询窗口中使用右键单击并选择查询选项时。但标题行不会显示在输出 CSV 文件中。

然后我注销服务器,再次登录并运行脚本。然后它起作用了。

于 2018-09-03T16:35:51.950 回答