我想将一些SQL Server 2005数据导出为CSV格式(用逗号分隔引号)。我可以想到很多复杂的方法,但我想以正确的方式做到这一点。我看过bcp,但我无法弄清楚如何在字段周围添加引号(除了将它们连接到字段值,这很难看)。我想我可以用sqlcmd和-o来做,但出于同样的原因,这似乎很难看。
有没有bcp方法呢?
有没有合理的sqlcmd方法呢?
管理工作室内置了一些非常简单的实用程序,我只是忽略了它吗?
答案 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。
如果您使用的是较新版本的Excel,则可以从PowerPivot中提取数据,然后将此数据插入表格中。
答案 11 :(得分:0)
SSIS是一种非常好的方法。然后可以使用SQL Server代理作业来安排此操作。
答案 12 :(得分:0)
您可以使用以下Node.js模块轻松完成: