从存储过程导出csv

时间:2013-02-20 19:22:14

标签: sql-server stored-procedures csv

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

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

3 个答案:

答案 0 :(得分:0)

64位驱动程序:
Microsoft Access数据库引擎2010可再发行组件 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 /文本文件,将“Text”添加到OLEDB连接字符串的扩展属性。 重要:使用新的12.0驱动程序和文本文件,schema.ini文件在csv / text文件的目录中是必需的,否则您将收到“找不到可安装的ISAM”错误。 schema.ini文档可以在这里找到: http://msdn.microsoft.com/en-us/library/ms709353(VS.85).aspx

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

答案 1 :(得分:0)

您可以查看此示例:

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

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

您可以很容易地转换为Excel。

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

答案 2 :(得分:0)