EXCEL2007导入SQL2008的问题

ysycysyc 2018-03-17 10:13:21
想把一个EXCEL2007表导入SQL中一个表中,在论坛中搜了好几个方法,可都提示错误。

SELECT * INTO H
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.8.0',
'Data Source="C:\H.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...sheet1

提示错误:

消息 7403,级别 16,状态 1,第 2 行
尚未注册 OLE DB 访问接口 "Microsoft.Jet.OLEDB.8.0"。

系统已装OFFICE2007,整两天也没整明白,请大虾帮看下该怎么改


...全文
537 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-03-19
  • 打赏
  • 举报
回复
SELECT @@VERSION 看看你的 sql server 是 32 还是 64 位的,ACE 必须匹配这个
ysycysyc 2018-03-19
  • 打赏
  • 举报
回复
是不是OFFICE是32位的而SQL是64位的不能导?
ysycysyc 2018-03-19
  • 打赏
  • 举报
回复
是64位的吧,任务管理器进程里显示MSACCESS.EXE*32,请教大虾,这得怎么改
ysycysyc 2018-03-19
  • 打赏
  • 举报
回复
引用 7 楼 zjcxc 的回复:
SELECT @@VERSION 看看你的 sql server 是 32 还是 64 位的,ACE 必须匹配这个
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
ysycysyc 2018-03-18
  • 打赏
  • 举报
回复
我不知哪里出问题,OFFICE2007我重装3次了,这次装完后,任务管理器的进程里还是显示“EXCEL.EXE *32",下载安装了AccessDatabaseEngine2007驱动,运行下面的命令还是不成功 EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO INSERT INTO H select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\H.xlsx')...[Sheet1$] (表H现 已提前删除。可以直接建表H并插入值,也可以先建好表H再插入值,其实H只有一列数据) -------------------------------------------------------------------------------------- 提示: 消息 7308,级别 16,状态 1,第 3 行 因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
吉普赛的歌 2018-03-18
  • 打赏
  • 举报
回复
下载安装AccessDatabaseEngine2007驱动. 地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=23734 再执行我#1的SQL
ysycysyc 2018-03-18
  • 打赏
  • 举报
回复
select * from OpenDataSource('Microsoft.ACE.OLEDB.8.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\H.xlsx')...[Sheet1$] 改成8.0提示: 消息 7403,级别 16,状态 1,第 1 行 尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.8.0"。
ysycysyc 2018-03-18
  • 打赏
  • 举报
回复
现在怎么跟以前不一样了,以前导过可以的,现在不知哪变了一样
ysycysyc 2018-03-18
  • 打赏
  • 举报
回复
消息 7308,级别 16,状态 1,第 1 行 因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 还是不行
吉普赛的歌 2018-03-18
  • 打赏
  • 举报
回复
对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。 Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。 ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。 另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。 你用这个试下:
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
	'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\1.xlsx')...[Sheet1$]

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧