0

sql 2008 存储过程中有没有办法将数据转储到带有列标题的 CSV 文件中?我必须使用 BCP 吗?我曾经为此使用 openrowset,但 64 位版本的 sql 2008 上没有喷气驱动器。

我不想使用 sqlcmd 从命令行执行此操作它必须在存储过程中完成。

4

3 回答 3

0

64 位驱动程序:
Microsoft Access Database Engine 2010 Redistributable http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d

有关如何在此处使用的详细信息:http:
//social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/33436d82-085c-43e4-b991-a2d0d701c8fc

来自链接的回答:
现在有一个 64 位驱动程序可用,您可以在这里下载它:

Microsoft Access 数据库引擎 2010 可再发行组件 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d

这将注册一个在服务器对象 -> 链接服务器 -> 提供程序下列出的驱动程序,名称为“Microsoft.ACE.OLEDB.12.0”,您必须将其用作提供程序字符串。

64 位 OLEDB 提供程序的连接字符串:对于 CSV/文本文件,将“文本”添加到 OLEDB 连接字符串的扩展属性中。重要提示:对于新的 12.0 驱动程序和文本文件,schema.ini 文件是 csv/text 文件目录中的必需文件,否则您将收到“找不到可安装的 ISAM”错误。schema.ini 文档可以在这里找到: //msdn.microsoft.com/en-us/library/ms709353 (VS.85).aspx

如果您要连接到 Microsoft Office Excel 数据,请将“Excel 14.0”添加到 OLEDB 连接字符串的扩展属性中。

于 2013-02-20T19:39:59.510 回答
0

我们已在多个实例中成功使用此代码:

http://prosqlserver.com/blog/2011/07/02/sqlclr-procedure-to-export-query-sp-results-into-csv/

于 2013-02-20T21:25:41.517 回答
0

你可以检查这个例子:

http://granadacoder.wordpress.com/2009/12/22/sql-server-data-to-a-jet-database/

我正在导出到 Jet 数据库(又名“Microsoft Access”)。

您可能可以相当容易地转换为 Excel。

但是代码可以放入存储过程中。

于 2013-02-20T19:40:37.927 回答