sql 2008 存储过程中有没有办法将数据转储到带有列标题的 CSV 文件中?我必须使用 BCP 吗?我曾经为此使用 openrowset,但 64 位版本的 sql 2008 上没有喷气驱动器。
我不想使用 sqlcmd 从命令行执行此操作它必须在存储过程中完成。
sql 2008 存储过程中有没有办法将数据转储到带有列标题的 CSV 文件中?我必须使用 BCP 吗?我曾经为此使用 openrowset,但 64 位版本的 sql 2008 上没有喷气驱动器。
我不想使用 sqlcmd 从命令行执行此操作它必须在存储过程中完成。
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 连接字符串的扩展属性中。
我们已在多个实例中成功使用此代码:
http://prosqlserver.com/blog/2011/07/02/sqlclr-procedure-to-export-query-sp-results-into-csv/
你可以检查这个例子:
http://granadacoder.wordpress.com/2009/12/22/sql-server-data-to-a-jet-database/
我正在导出到 Jet 数据库(又名“Microsoft Access”)。
您可能可以相当容易地转换为 Excel。
但是代码可以放入存储过程中。