如何将SQL Server 2005查询导出为CSV

时间:2009-04-28 19:21:59

标签: sql-server sql-server-2005 bcp sqlcmd

我想将一些SQL Server 2005数据导出为CSV格式(用逗号分隔引号)。我可以想到很多复杂的方法,但我想以正确的方式做到这一点。我看过bcp,但我无法弄清楚如何在字段周围添加引号(除了将它们连接到字段值,这很难看)。我想我可以用sqlcmd和-o来做,但出于同样的原因,这似乎很难看。

有没有bcp方法呢?

有没有合理的sqlcmd方法呢?

管理工作室内置了一些非常简单的实用程序,我只是忽略了它吗?

13 个答案:

答案 0 :(得分:63)

在Management Studio中,选择数据库,右键单击并选择Tasks->Export Data。在那里,您将看到导出为各种格式的选项,包括CSV,Excel等。

您还可以从“查询”窗口运行查询,并将结果保存为CSV。

答案 1 :(得分:44)

在management studio中,设置查询选项以输出到文件,并在options->查询结果中将输出设置为文件,以逗号作为分隔符输出。

答案 2 :(得分:31)

如果你不能使用Management studio我使用sqlcmd。

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","

这是从命令行执行此操作的快捷方式。

答案 3 :(得分:25)

我不得不再做一件事,而不是Sijin说要在SQL Server Management Studio 2005中正确添加引号。转到

Tools->Options->Query Results->Sql Server->Results To Grid

选中此选项旁边的支票:

Quote strings containing list separators when saving .csv results

注意:上述方法不适用于SSMS 2005 Express!据我所知,使用SSMS 2005 Express将结果导出到.csv时无法引用字段。

答案 4 :(得分:9)

是的,如果您只想将查询结果保存为CSV,则Management Studio中有一个非常简单的实用程序。

右键单击结果集,选择“将结果另存为”。默认文件类型为CSV。

答案 5 :(得分:6)

如果符合您的要求,如果经常这样做,或者想将其构建到生产过程中,可以在命令行中使用 bcp

Here's a link描述配置。

答案 6 :(得分:5)

对于特殊查询:

以网格模式显示结果(CTRL + D),运行查询,单击结果网格中的左上角框,粘贴到Excel,另存为CSV。您可以直接粘贴到文本文件中(现在不能尝试)

或“结果到文件”也有CSV选项

或使用逗号分隔符“结果到文本”

Tool..Options和Query ..选项下的所有设置(我认为,也无法检查)

答案 7 :(得分:2)

上设置nocount

引号在那里,使用-w2000将每行保持在一行上。

答案 8 :(得分:2)

在SQL 2005中,这很简单: 1.打开SQL Server管理工作室并将您需要的sql语句复制到TSQL中,例如exec sp_whatever 2.查询 - >结果到网格 3.突出显示sql语句并运行它 4.突出显示数据结果(左键单击结果网格的左上区域) 5.现在右键单击并选择“将结果另存为” 6.在保存类型中选择CSV,输入文件名,选择一个位置,然后单击保存。

轻松!

答案 9 :(得分:1)

在Sql Server 2012中 - Management Studio:

解决方案1:

执行查询

右键单击结果窗口

从菜单中选择保存结果为

选择CSV

解决方案2:

右键单击数据库

选择任务,导出数据

选择源数据库

选择目的地:平面文件目的地

选择文件名

选择格式 - 分隔

选择表格或撰写查询

选择列分隔符

注意: 您可以选择一个文本限定符来分隔您的文本字段,例如引号。

如果您有逗号字段,请不要使用逗号作为分隔符,因为它不会删除逗号。您可以选择列分隔符,例如垂直条:|而不是逗号或制表符。否则,编写一个可以转义逗号或分隔varchar字段的查询。

您需要使用的转义字符或文本限定符取决于您的要求。

答案 10 :(得分:1)

我认为最简单的方法是使用Excel。

  1. 打开一个新的Excel文件。
  2. 单击“数据”选项卡
  3. 选择其他数据源
  4. 选择SQL Server
  5. 输入您的服务器名称,数据库,表名等
  6. 如果您使用的是较新版本的Excel,则可以从PowerPivot中提取数据,然后将此数据插入表格中。

答案 11 :(得分:0)

SSIS是一种非常好的方法。然后可以使用SQL Server代理作业来安排此操作。

答案 12 :(得分:0)

您可以使用以下Node.js模块轻松完成:

https://www.npmjs.com/package/mssql-to-csv