我正在使用 SQL Server Management Studio。
我希望将查询结果保存到 excel 文件中。
我选择“另存为”,然后保存到可以在 excel 中打开的 CSV 文件。一切都很好,除了我缺少列标题,有什么想法可以导出它们吗?
我正在使用 SQL Server Management Studio。
我希望将查询结果保存到 excel 文件中。
我选择“另存为”,然后保存到可以在 excel 中打开的 CSV 文件。一切都很好,除了我缺少列标题,有什么想法可以导出它们吗?
Tools
> Options
> Query Results
> SQL Server
> Results to Text (or Grid if you want)
>Include columns headers in the result set
更改此选项后,您可能需要关闭并重新打开 SSMS。
在 SQL 编辑器工具栏上,您可以选择保存到文件而无需重新启动 SSMS
尝试导出向导。在此示例中,我选择了整个表,但您也可以轻松地指定查询:
(您也可以在此处指定查询)
另一种可能性是使用剪贴板将结果直接复制并粘贴到 Excel 中。请注意常规类型的 Excel 列,因为它们有时会产生不可预测的结果,具体取决于您的数据。CTL-A
结果网格中的任意位置,然后右键单击:
如果您在使用 Excel 的常规格式进行不需要的转换时遇到问题,请在粘贴之前选择 Excel 中的空白列并将格式更改为“文本”。
至少在 SQL Server 2012 中,您可以在查询窗口中右键单击并选择查询选项。从那里您可以为网格和/或文本选择包含标题,并让另存为以您想要的方式工作,而无需重新启动 SSMS。
您仍然需要在菜单栏中的工具->选项中对其进行更改,以使新的查询窗口默认使用这些设置。
Visual Studio 中也存在同样的问题,以下是解决方法:
去:
Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid
现在单击复选框为真:“复制或保存结果时包括列标题”
通过单击左上角选择您的结果,右键单击并选择“使用标题复制”。粘贴到excel中。完毕!
如果您想为将来在 SQL Server Management Studio (SSMS) 中打开的所有查询会话永久设置此选项,建议在 @Diego 接受的答案中更改的设置可能会很好。通常情况并非如此。此外,更改此设置需要重新启动 SQL Server Management Studio (SSMS) 应用程序。如果您有许多未保存的打开查询会话窗口并且您正在进行一些调试,这又是一种“不太好”的体验。
SQL Server 提供了一个非常灵活的选项,可以在每个会话的基础上进行更改,非常快速、方便和方便。我正在使用查询选项窗口详细说明以下步骤:
Query Options...
上下文菜单底部的 ,如下所示:Results
> 。Grid
选中Include column headers when copying or saving the results
右窗格中的复选框,如下所示:就是这样。您当前的会话将立即生效您的设置,而无需重新启动 SSMS。此外,此设置不会传播到任何未来的会话。在每个会话的基础上有效地更改此设置的噪音要小得多。
在寻找一种方法来使 SSMS 在导出结果时正确转义 CSV 分隔符时到达这里。
你猜怎么了?- 这其实是一个选项,默认是不勾选的。因此,默认情况下,您会得到损坏的 CSV 文件(甚至可能没有意识到,尤其是如果您的导出很大并且您的数据通常没有逗号) - 您必须进入并单击一个复选框,以便您的 CSV 导出正确!
对我来说,这似乎是一个极其愚蠢的设计选择,也是对微软总体软件方法的恰当比喻(“默认情况下被破坏,需要毫无意义的仪式化操作才能使琐碎的功能发挥作用”)。
但是,如果有人可以给我一个有效的现实生活理由来支持这个选项的存在(即它有用的实际场景),我很乐意向受访者选择的慈善机构捐赠 100 美元。
在 SQL Server 2014 Management Studio 中,设置位于:
工具 > 选项 > 查询结果 > SQL Server > 结果到文本 > 在结果集中包含列标题。
我也面临同样的问题。当我在查询窗口中使用右键单击并选择查询选项时。但标题行不会显示在输出 CSV 文件中。
然后我注销服务器,再次登录并运行脚本。然后它起作用了。