数据库:SQL

1、小数据直接粘贴

2、用导入向导

3、用SSIS包

4、用SQL语句

现在详细说一下第4种方法,以.xlsx文件为例

.xlsx文件需要用provider“Microsoft.ACE.OLEDB.12.0”读取,.xls文件需要Microsoft.ACE.OLEDB.4.0,所以需要先检查是否在SQL注册此Provider

具体查看位置为:打开SQL Management Studio->SQL Servers->Linked Servers->Providers

 

如果没有,需要下载64位引擎安装 http://www.microsoft.com/zh-CN/download/details.aspx?id=13255

Tip:64位系统中,如果是安装了32位的office 产品(如07版),需要先卸载全部32位产品,才可以安装。而且64位系统中安装了07版office,安装那个没有x64的引擎可以成功,但没有找到4.0Provider。

彻底卸载32位office产品:

1、控制面板卸载全部Microsoft Office程序

2、打开http://support.microsoft.com/kb/290301/zh-cn ,点击运行,将检测到的Microsoft Office程序卸载

3、清除注册表:运行输入regedit,进入到HKEY_CLASSES_ROOT\Installer\Products ,删除所有0000510开头(win8),00004,00002(win7)开头的项

 

开启导入功能:

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

允许在进程中使用ACE.OLEDB.12,允许动态参数

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

调用代码:

select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Book1.xlsx', 'select * from [Sheet1$]')


 

 

  

 

posted on 2015-11-13 17:01  endora22  阅读(734)  评论(0编辑  收藏  举报