Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Sql Server Management Studio中使用标题保存结果_Sql_Sql Server 2008_Excel_Ssms_Export To Excel - Fatal编程技术网

在Sql Server Management Studio中使用标题保存结果

在Sql Server Management Studio中使用标题保存结果,sql,sql-server-2008,excel,ssms,export-to-excel,Sql,Sql Server 2008,Excel,Ssms,Export To Excel,我正在使用SQLServerManagementStudio 我希望将查询结果保存到excel文件中 我选择“另存为”,然后保存到可以在excel中打开的CSV文件。除了缺少列标题之外,一切都很好,您知道如何将它们导出吗?工具选项查询结果至少在SQL Server 2012中,您可以右击查询窗口并选择查询选项。从中,您可以为网格和/或文本选择包含标题,并使“另存为”按您希望的方式工作,而无需重新启动SSMS 您仍然需要在菜单栏的“工具”->“选项”中进行更改,以使新的查询窗口默认使用这些设置。通

我正在使用SQLServerManagementStudio

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


我选择“另存为”,然后保存到可以在excel中打开的CSV文件。除了缺少列标题之外,一切都很好,您知道如何将它们导出吗?

工具
选项
查询结果
结果转换为文本(或网格,如果需要)
在结果集中包含列标题

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


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

尝试导出向导。在本例中,我选择了一个完整的表,但您可以同样轻松地指定查询:

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


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


如果Excel的通用格式遇到不必要的转换有问题,请在Excel中粘贴空白列并将格式更改为“文本”。

< P>至少在SQL Server 2012中,您可以右击查询窗口并选择查询选项。从中,您可以为网格和/或文本选择包含标题,并使“另存为”按您希望的方式工作,而无需重新启动SSMS


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

通过单击左上角,右键单击并选择“使用标题复制”来选择结果。 粘贴在excel中。
完成了

Visual Studio中也存在同样的问题,下面介绍如何解决该问题:

转到:

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

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

在导出结果时寻找使SSM正确转义CSV分隔符的方法时,在此处找到

你猜怎么着这实际上是一个选项,默认情况下未选中。因此,在默认情况下,您会得到损坏的CSV文件(甚至可能没有意识到它,特别是如果您的导出很大,并且您的数据通常没有逗号的话)-您必须进入并单击复选框,以便您的CSV正确导出

在我看来,这似乎是一个极其愚蠢的设计选择,是微软软件总体做法的恰当隐喻(“默认情况下,需要毫无意义的仪式性动作才能使琐碎的功能发挥作用”)


但是,如果有人能给我一个现实生活中存在这种选择的有效理由(即,一个实际情况下它是有用的),我将很乐意向受访者选择的慈善机构捐赠100美元。

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


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

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


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

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

SQL Server提供了一个非常灵活的选项,可以在每个会话的基础上对其进行更改,这非常快速、方便。我将使用“查询选项”窗口详细介绍以下步骤:

  • 在查询编辑器窗口中单击鼠标右键>单击上下文菜单底部的
    查询选项…
    ,如下所示:
  • 在左侧导航窗格中选择
    Results
    Grid
    。在右窗格中选中复制或保存结果时包含列标题的
    复选框,如下所示:

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

    +1,对此进行了测试,结果正常:工具->选项->查询结果->SQL Server->结果到网格,然后选中“复制或保存结果时包含列标题”。这适用于SSMS 2012-您确实需要重新启动SSMS才能使设置生效。要确认,您肯定需要关闭并重新打开SSMS才能应用此选项。正如Christopher所说,您确实需要重新启动SSMS才能使更改生效。对于SSMS 2016,您还需要重新启动它才能使这些更改生效。谢谢。但这是桌子用的。我的问题是查询。您也可以在第四步“指定表副本或查询”中指定查询。我尝试了所有其他方法,这是唯一一种适用于我的混合数据类型的方法。虽然这样做非常痛苦和耗时。SQL Server和Excel都是MS产品,令人惊讶的是2013年没有一个简单的导出按钮!复制或保存结果时是否尝试更改
    包含列标题
    选项?当您在
    查询选项
    窗口的左侧导航窗格中选择
    结果
    网格
    时,此选项可见。这非常好,Excel格式除外。带前导零的数字(例如手机号码)在Excel中删除零。我还遇到了其他格式问题