我正在使用SQL Server管理工作室。
我希望将查询结果保存到excel文件中。
我选择“另存为”,然后保存到CSV文件,我可以在excel中打开。一切都好,除了我缺少列标题,任何想法我如何得到他们导出?
我正在使用SQL Server管理工作室。
我希望将查询结果保存到excel文件中。
我选择“另存为”,然后保存到CSV文件,我可以在excel中打开。一切都好,除了我缺少列标题,任何想法我如何得到他们导出?
当前回答
尝试导出向导。在这个例子中,我选择了一个完整的表,但是你可以很容易地指定一个查询:
(你也可以在这里指定一个查询)
其他回答
我也面临着同样的问题。当我使用右键单击查询窗口,并选择查询选项。但标题行不显示在输出CSV文件。
然后注销服务器,再次登录并运行脚本。然后就成功了。
在寻找一种方法使SSMS在导出结果时正确地转义CSV分隔符时来到这里。
你猜怎么着?-这实际上是一个选项,默认情况下是未选中的。所以默认情况下,你得到破碎的CSV文件(甚至可能没有意识到这一点,特别是如果你的导出很大,你的数据通常没有逗号)-你必须进入并单击复选框,这样你的CSV导出正确!
对我来说,这似乎是一个非常愚蠢的设计选择,也贴切地比喻了微软对软件的一般做法(“默认情况下被破坏,需要无意义的仪式行为来实现琐碎的功能”)。
但如果有人能给我一个有效的现实生活理由,我很乐意向受访者选择的慈善机构捐赠100美元(即,一个有用的实际场景)。
至少在SQL Server 2012中,可以在查询窗口中单击右键,选择“查询选项”。从那里,你可以选择包括网格和/或文本的标题,并有另存为工作方式你想要的,而不重新启动SSMS。
您仍然需要在菜单栏中的Tools->选项中更改它,以便新的查询窗口默认使用这些设置。
同样的问题也存在于Visual Studio中,下面是如何解决它的方法:
至:
Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid
现在单击复选框为true:“在复制或保存结果时包含列标题”
The settings which has been advised to change in @Diego's accepted answer might be good if you want to set this option permanently. Permanently means it'll apply to all future query sessions that you open within SQL Server Management Studio(SSMS). This is usually not the case. Also, changing this setting requires restarting SQL Server Management Studio (SSMS). This is again a not-so-nice experience in case there are many unsaved query session windows open and you are in the middle of debugging something.
SQL Server提供了一个非常灵活的选项,可以在每个会话的基础上更改这个设置,非常快速和方便。我详细说明下面的步骤使用查询选项窗口:
在查询编辑器窗口中右击。现在,点击查询选项…在上下文菜单中如下图所示: 在左侧导航窗格的Results节点下选择Grid。现在,在复制或保存结果时勾选“包括列标题”复选框,如下所示:
就是这样。现在,您当前的查询会话将立即开始执行您的设置。您不需要重新启动SSMS。此外,此设置也不会传播到任何未来的会话。实际上,在每个会话的基础上更改这个设置可以减少噪音。