SQL Server 导入EXCEL数据

一、导入本地的excel数据到本地数据库,流程如下:

1、--启动OpenDataSource

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE

2、--查询excel的数据

SELECT * FROM OpenDataSource
( 'Microsoft.ACE.OLEDB.12.0','Data Source="C:\Users\Think\Desktop\粗细联格式.xlsx";Extended properties=Excel 12.0')...[Sheet1$]

3、--将excel表数据插入数据库表中

INSERT  INTO 粗细联.接口参数属性
        ( 接口参数名 ,
          参数属性
        )
        SELECT  接口参数名 ,
                        参数属性
        FROM    OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
                               'Data Source="C:\Users\Think\Desktop\粗细联格式.xlsx";Extended properties=Excel 12.0')...[Sheet1$];

过程中可能会遇到的问题:尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"

有的语句里是Microsoft.Jet.OLEDB.4.0,其中,jet引擎和ACE引擎是面向不同版本的office的,

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 是不可以的。

解决方法如下:

下载安装:Microsoft Office Access Database Engine 

附链接:https://www.microsoft.com/en-us/download/details.aspx?id=13255

(个人理解出现该问题的原因是数据库版本和office版本不对应导致,例如office是32位的,而SQLSERVER是64位的。)

二、导入本地的excel数据到远程数据库

流程如下:(需要建立链接服务器, 以下是在我本地建的链接服务器往远程服务器上插数据)

1、要确保在本地的数据库中可以查询本地excel的数据,查询语句如下,具体流程见上文

SELECT * FROM OpenDataSource
( 'Microsoft.ACE.OLEDB.12.0','Data Source="C:\Users\Think\Desktop\粗细联格式.xlsx";Extended properties=Excel 12.0')...[Sheet1$]

2、--建立链接服务器

exec sp_addlinkedserver   'ITLY', '', 'SQLOLEDB ', '7.173.144.###' --服务器名称
exec sp_addlinkedsrvlogin 'ITLY', 'false ',null, 'sa', '###########'  --数据库登录名和密码

3、--将excel表数据插入数据库表中

INSERT  INTO  ITLY.数据库名称.粗细联.接口参数属性  --有下划线的是表名
        ( 接口参数名 ,
          参数属性
        )
        SELECT  接口参数名 ,
                        参数属性
        FROM    OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
                               'Data Source="C:\Users\Think\Desktop\粗细联格式.xlsx";Extended properties=Excel 12.0')...[Sheet1$];
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值