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

问题描述:

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

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

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

在管理工作室中内置了一些很棒的简单实用程序,我只能忽略它?

+0

另请参阅:http://stackoverflow.com/questions/425379/how-to-export-data-as-csv-format-from-sql-server-using-sqlcmd – 2010-03-11 16:52:40

在Management Studio中,选择数据库,右键单击并选择Tasks->Export Data。您将看到可以导出到CSV,Excel等不同格式的选项。

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

+0

我知道这是简单的那样的事情。谢谢。 – 2009-04-28 19:56:51

+25

当您将结果保存为CSV时,它似乎无法正确地在varchar字段中转义逗号 – 2012-02-21 16:46:49

+2

这是2005年的工作吗?我无法获得文件类型的选项 – 2013-01-04 09:47:19

对于即席查询:

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

或“结果到文件”有自己的选择太对CSV

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

工具..选项和查询..选项(我认为,无法检查)的所有设置太

+0

这就是我要发布的信息 – DForck42 2009-04-28 20:03:42

+3

这对于大型结果集......内存异常不适用。 :( – CodeRedick 2012-02-08 16:24:15

在管理工作室,设置查询选项输出到文件,并在选项 - >查询结果集输出到文件以逗号作为分隔符输出。

+0

不知道你能做到这一点,谢谢。 – 2009-04-28 19:57:24

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

右键单击结果集,选择“Save Results As”。默认文件类型是CSV。

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

Here's a link描述了配置。

+0

这回答了我关于bcp的问题(它和我想象的一样丑陋;没有人说bcp不是难看的)谢谢 – 2009-04-28 19:59:28

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

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

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

SET NOCOUNT上

的报价都在那里,用-w2000保持每行一个行。

在SQL 2005,这是简单的: 1.打开SQL Server Management Studio并 2.查询 - >结果复制你需要到TSQL,SQL语句如exec sp_whatever网格 3。突出显示sql语句并运行它 4.突出显示数据结果(左键单击结果网格的左上角区域) 5.现在右键单击并选择Save Results As 6.在Save as类型中选择CSV,输入一个文件名,选择一个位置并点击保存。

简单!

我必须做一个比死劲说让它在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时,没有办法引用这些字段。

在SQL Server 2012 - 管理工作室:

解决方案1:

执行查询

右键单击结果窗口

选择结果另存为从菜单

选择CSV

解决方案2:

数据库右击

选择任务,导出数据

选择源DB

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

选择一个文件名

选择格式 - 分隔

选择一个表或编写一个查询

选择一个列分隔符

注: 你可以选择一个文本限定符将分隔文本字段,如报价。

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

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

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

您可以使用下面的Node.js模块一件轻而易举的做到这一点:

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

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

  1. 打开一个新的Excel文件。
  2. 单击数据选项卡上
  3. 选择其他数据源
  4. 选择SQL Server
  5. 输入您的服务器名称,数据库,表名等

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