在SQL Server Management Studio中保存带有标题的结果

我正在使用SQL Server管理工作室。

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

我选择“另存为”,然后保存到CSV文件,我可以在excel中打开。一切都好,除了我缺少列标题,任何想法我如何得到他们导出?

228569 次浏览

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

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

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

尝试导出向导。在这个例子中,我选择了一个完整的表,但是你可以很容易地指定一个查询:

enter image description here

enter image description here

enter image description here

enter image description here

(你也可以在这里指定一个查询)

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

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

enter image description here

如果您在Excel的通用格式进行不希望的转换时遇到麻烦,请在粘贴之前选择Excel中的空白列,并将格式更改为“文本”。

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

您仍然需要在菜单栏中的Tools->选项中更改它,以便新的查询窗口默认使用这些设置。

选择你的结果点击左上角,右键单击并选择“复制与标题”。 粘贴到excel中。 完成了!< / p >

同样的问题也存在于Visual Studio中,下面是如何解决它的方法:

至:

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

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

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

你猜怎么着?-这实际上是一个选项,它是默认不勾选。所以默认情况下,你得到破碎的CSV文件(甚至可能没有意识到这一点,特别是如果你的导出很大,你的数据通常没有逗号)-你必须进入并单击复选框,这样你的CSV导出正确!

对我来说,这似乎是一个非常愚蠢的设计选择,也贴切地比喻了微软对软件的一般做法(“默认情况下被破坏,需要无意义的仪式行为来实现琐碎的功能”)。

但如果有人能给我一个有效的现实生活理由,我很乐意向受访者选择的慈善机构捐赠100美元(即,一个有用的实际场景)。

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

然后注销服务器,再次登录并运行脚本。然后就成功了。

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

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

如果你想永久地设置这个选项,@Diego的接受答案中建议更改的设置可能会很好。永久意味着它将应用于您在SQL Server Management Studio(SSMS)中打开的所有未来查询会话。这通常是的情况。此外,更改此设置需要重新启动SQL Server Management Studio (SSMS)。这也是一个偷渡的的经验,以防有许多未保存的查询会话窗口打开,而你正在调试一些东西。

SQL Server提供了一个非常灵活的选项来更改每节课上的这个设置,这非常快速和方便。我详细说明下面的步骤使用查询选项窗口:

  1. 在查询编辑器窗口右击。现在,在上下文菜单中单击查询选项…,如下所示:

    enter image description here

  2. 在左侧导航窗格中选择结果节点下的网格。现在,选中在复制或保存结果时包含列标题复选框,如下所示:

    enter image description here

就是这样。现在,您当前的查询会话将立即开始执行您的设置。您不需要重新启动SSMS。此外,此设置也不会传播到任何未来的会话。实际上,在每个会话的基础上更改这个设置会有很大的噪声。