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

我想将一些SQL Server 2005数据导出为CSV格式(以逗号分隔)。 我可以想到很多复杂的方法来做到这一点,但是我想以正确的方式来做。 我已经看了bcp,但是我不知道如何把引号放在字段的周围(除了将它们连接到字段值,这是丑陋的)。 我想我可以用sqlcmd和-o来做,但是出于同样的原因,这看起来很丑。

有一个bcp的方式来做到这一点?

有没有合理的sqlcmd方法来做到这一点?

在pipe理工作室中是否有一些非常简单的实用工具,我只能忽略它们?

在Management Studio中,select数据库,右键单击并selectTasks->Export Data 。 在那里你会看到select导出到不同的格式,包括CSV,Excel等

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

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

如果你不能使用Management Studio,我使用sqlcmd。

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

这是从命令行执行的快速方法。

我不得不做比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时,没有办法引用字段。

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

右键单击结果集,select“Save Results As”。 默认的文件types是CSV。

如果它符合你的要求,你可以在命令行上使用bcp ,如果你经常这样做,或者想把它build立到生产过程中。

以下是描述configuration的链接 。

对于adhoc查询:

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

或者“文件结果”也可以selectCSV

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

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

设置nocount

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

在SQL 2005中,这很简单:1.打开SQL Serverpipe理工作室,将所需的sql语句复制到TSQL中,如exec sp_whatever 2. Query-> Results to Grid 3.突出显示sql语句并运行它4.突出显示数据结果(左键单击结果网格的左上angular区域)5.现在右键单击并selectSave Results As 6.在Save astypes中selectCSV,input文件名,select一个位置并单击Save。

简单!

在Sql Server 2012中 – Management Studio:

解决scheme1:

执行查询

右键单击结果窗口

从菜单中select保存结果为

selectCSV

解决scheme2:

右键点击数据库

select任务,导出数据

select源数据库

select目标:平面文件目标

select一个文件名

select格式 – 分隔符

select一个表或写一个查询

select一个列分隔符

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

如果你有一个带有逗号的字段,不要使用逗号作为分隔符,因为它不能转义逗号。 您可以select一个列分隔符,如垂直条:| 而不是逗号,或制表符。 否则,编写一个查询来转义您的逗号或分隔您的varchar字段。

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

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

  1. 打开一个新的Excel文件。
  2. 点击数据标签
  3. select其他数据源
  4. selectSQL Server
  5. input您的服务器名称,数据库,表名称等

如果您有较新版本的Excel,则可以从PowerPivot中提取数据,然后将这些数据插入到表中。

SSIS是一个很好的方法来做到这一点。 这可以使用SQL Server代理作业进行调度。

你可以使用下面的Node.js模块来做到这一点:

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