如何将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。
- 打开一个新的Excel文件。
- 点击数据标签
- select其他数据源
- selectSQL Server
- input您的服务器名称,数据库,表名称等
如果您有较新版本的Excel,则可以从PowerPivot中提取数据,然后将这些数据插入到表中。
SSIS是一个很好的方法来做到这一点。 这可以使用SQL Server代理作业进行调度。
你可以使用下面的Node.js模块来做到这一点: