查询语句SqlServer与Excel数据导入导出

一、Excel文件在sqlserver数据库的本地 

1、启用Ad Hoc Distributed Queries的方法
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
2、从数据库将数据导入到Excel
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\Excel文件 名.xls',Sheet1$)select * from 数据库表名
3、从Excel导入到数据库中
insert into 数据库表名 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\Excel文件名.xls',Sheet1$)

/*
说明:
Microsoft.Jet.OLEDB.4.0:数据库提供程序,连接驱动
Data Source:excel的路径
User ID:excel用户名,默认为Admin
Password:密码。默认为空
Extended properties:excel版本
[Sheet1$]:Sheet1表单名称
*/

/*

--将查询结果插入其他表中(注意字段个数必须一致,并且一一对应)
insert into 表名(字段1,字段2,字段3,字段4) 
select 人员,时间,内容,结果 from OpenDataSource('Microsoft.Jet.OLEDB.4.0',

'Data Source=d:\log.xls;User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$] 

*/

4、关闭Ad Hoc Distributed Queries的方法
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

如果是32位的操作系统,32位的sqlServer如上操作就不存在什么问题了,但如果是64位的操作系统和sqlServer以上的做法就行不通了,而且会报错
错误信息如下:
消息 7302,级别 16,状态 1,第 1 行
无法创建链接服务器 '(null)' 的 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 的实例。
原因:
在64SQL Engine中已经不提供jet.oledb.4.0的驱动了
解决方法:
下载一个ACE.Oledb.12.0 fo  r X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0
下载地址:
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d
完成后改写语句:select * from OpenRowSet
('Microsoft.ACE.OLEDB.12.0',
'Excel 8.0;HDR=Yes;Database=c:/test.xls',
[Sheet1$]
)
这样就搞定了。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值