在sql 2008存储过程中是否有办法将数据转储到带有列标题的CSV文件中?我必须使用BCP吗?我过去常常使用openrowset,但在64位版本的sql 2008上没有喷射驱动器。
我不想使用sqlcmd从命令行执行此操作必须在存储过程中完成。
答案 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)