openrowset excel2010

环境:Windows2008 Server 64位+SqlServer 2008 64位+Office2010 64位+Microsoft Access Database Engine 64位。

目的:将Sqlserver里面的多张表满足条件的数据导出到Excel里。

用的语句是:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0 Xml;Database=C:\testing.xlsx;', 
'SELECT Name, Date FROM [Sheet1$]') 
SELECT [Name], GETDATE() FROM msdb.dbo.sysjobs
GO
 

但是始终通不过,报的错误如下:

消息 7399,级别 16,状态 1,第 2 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。访问被拒绝。
消息 7390,级别 16,状态 2,第 2 行
无法执行请求的操作,因为链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 不支持所需的事务接口。
 

后来我绝望了不想搞了时,无意中在CSDN上的一位高人的解答下无意中解决了:

将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem
 

我忽然想起来了,我在安装SQLSERVER2008时选的是network service,结果就造成了这样的错误,曰!

refurl:http://topic.csdn.net/u/20090602/17/2b46432b-7770-4444-982c-b81d442f34b9.html

-------------------------------------------------------------------------------

下面分别说一下上面所说的软件的下载链接:

1、Windows2008 Server 64位

http://www.cnzz.cc/Soft/6593.html

2、SqlServer 2008 64位

http://www.ha97.com/3950.html

3、Office2010 64位

http://blog.itful.com/articles/2010/1529_office-2010-vol-kms.html

或者

ed2k://%7Cfile%7CSW_DVD5_Office_Professional_Plus_2010_64Bit_ChnSimp_MLF_X16-52534.iso%7C1009090560%7Cc0bade6be073cc00609e6ca16d0c62ac%7Ch=5rj4t2suepkgnpddvmqwnis3sno3lzoa/

4、Microsoft Access Database Engine 64位

http://www.microsoft.com/en-us/download/details.aspx?id=13255

其他参考资料:

http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/A_3025-Retrieving-Data-From-Excel-Using-OPENROWSET.html

猜你喜欢

转载自wandejun1012.iteye.com/blog/1571118