65

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

有没有 bcp 方法可以做到这一点?

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

Management Studio 中是否有一些很棒的、简单的实用程序,而我只是忽略了这些实用程序?

4

13 回答 13

64

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

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

于 2009-04-28T19:28:55.197 回答
44

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

于 2009-04-28T19:29:39.763 回答
31

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

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

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

于 2009-12-15T15:27:42.370 回答
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 时无法引用字段。

于 2010-09-29T22:36:35.587 回答
9

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

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

于 2009-04-28T19:30:31.603 回答
7

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

这是描述配置的链接。

于 2009-04-28T19:33:17.680 回答
5

对于即席查询:

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

或者“结果文件”也有 CSV 的选项

或带有逗号分隔符的“结果到文本”

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

于 2009-04-28T19:29:12.450 回答
2

在 SQL 2005 中,这很简单: 1. 打开 SQL Server management studio 并将您需要的 sql 语句复制到 TSQL 中,例如 exec sp_whatever 2. Query->Results to Grid 3. 突出显示 sql 语句并运行它 4. 突出显示数据结果(左键单击结果网格的左上方区域) 5. 现在右键单击并选择 Save Results As 6. 在 Save as type 中选择 CSV,输入文件名,选择位置并单击 Save。

简单的!

于 2010-03-17T22:46:58.480 回答
2

设置不计数

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

于 2010-01-06T16:23:13.643 回答
1

在 Sql Server 2012 - Management Studio 中:

解决方案1:

执行查询

右键单击结果窗口

从菜单中选择结果另存为

选择 CSV

解决方案2:

右键单击数据库

选择任务,导出数据

选择源数据库

选择目标:平面文件目标

选择一个文件名

选择格式 - 分隔

选择表或编写查询

选择列分隔符

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

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

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

于 2014-08-26T19:08:05.040 回答
1

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

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

如果您有更新版本的 Excel,您可以从 PowerPivot 中导入数据,然后将此数据插入到表中。

于 2017-06-19T19:07:45.970 回答
0

SSIS 是一个非常好的方法来做到这一点。然后可以使用 SQL Server 代理作业安排此操作。

于 2015-05-13T20:12:00.030 回答
0

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

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

于 2016-02-04T08:44:56.600 回答