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

Joh*_*ant 63 sql-server bcp sql-server-2005 sqlcmd

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

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

有合理的sqlcmd方法吗?

管理工作室内置了一些非常简单的实用工具吗?

Jos*_*lio 63

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

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

  • 将结果保存为CSV时,它似乎无法正确转义varchar字段中的逗号 (25认同)
  • 这在2005年有效吗?我没有文件类型的选项 (2认同)
  • 导出为CSV时,它也不会在文本字段中转义EOLN(从数据库中选择时,有一种解决方法可以使用双引号包装导出的数据列). (2认同)

Sij*_*jin 44

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


小智 31

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

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","
Run Code Online (Sandbox Code Playgroud)

这是从命令行执行此操作的快速方法.

  • 前置"SET NOCOUNT ON"; 查询以抑制显示的行数. (9认同)

gok*_*ter 25

我必须做一个比死劲说让它在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时无法引用字段.

  • 为什么哦为什么不是默认行为?你必须设置它,这是愚蠢的.谢谢你的提示.很有用. (7认同)
  • 对于它的价值,"引用字符串"选项对我不起作用(发出的字符串没有引用).我最后必须在SELECT语句中包含引号.将它留给Microsoft来制作一个完全没用的数据导出工具. (5认同)
  • 我知道这是很久以前了,我在SQL Server 2008上,但我想添加的一件事是:确保在更改引用设置后,打开一个新的查询窗口来运行查询并导出结果来自.除非你这样做,否则它不起作用.只需添加此项,以便其他人阅读此答案. (2认同)

Pet*_* H. 9

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

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


dkr*_*etz 6

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

这是一个描述配置的链接.


gbn*_*gbn 5

对于特殊查询:

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

或者"结果到文件"也有CSV选项

或者使用逗号分隔符"结果到文本"

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

  • 这对大型结果集不起作用......内存异常.:( (3认同)