尝试从Excel(xls)文件中选择数据时,在SQL Server 2008中出现以下错误:
Msg 7303, Level 16, State 1, Line 43
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server
SQL如下:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;HDR=YES;Database=c:\\Temp\\Book1.xls;', 'SELECT * FROM [Sheet1$]')
采取的步骤:
我的理论: 在我的开发盒上运行正常,因为我的SQL服务作为'LocalSystem'运行。我正在尝试运行的目标服务器有一个正在运行的特定网络用户。这不能改变。
根据我所知道/已经阅读过的关于OPENROWSET和OPENQUERY(也尝试使用链接服务器),它需要在C:\ Windows \ ServiceProfiles \\ AppData \ Local \ Temp中创建一个临时文件。我已手动尝试在服务配置文件中为此用户创建文件夹结构,但这也不起作用。
::更新:: 最后,我放弃了这个想法,而是在集成服务中创建了一个包。由于这个过程需要作为工作的一部分运行,这足以满足我的需求。
如果有人有兴趣。在IS中创建包就像遵循导入数据向导一样简单,最后选择“创建集成服务包”。然后可以从您的工作中调用它。 TA