加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 13:06:09 所属栏目:MsSql教程 来源:网络整理
导读:一、Excel文件在sqlserver数据库的本地? 1、启用Ad Hoc Distributed Queries的方法 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',251)">2、从数据库将数据导入到Excel insert into OPENROWSET(

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

1、启用Ad Hoc Distributed Queries的方法
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',251)">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的方法
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',251)">[Sheet1$]
)
这样就搞定了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读