关于利用opendatasource 读取excel文件中的数据问题以及更新数据库中对应数据的问题

<strong>前言:</strong>
   <strong> 由于下面是根据别人的提问解决过程的一个回顾总结,若碰到类似问题,按照下面步骤不能解决,并找到了解决办法的朋友,欢迎补充!</strong>
/*
    操作系统:win7 32位处理器
    Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
	Oct 14 2005 00:33:37 
	Copyright (c) 1988-2005 Microsoft Corporation
	Developer Edition on Windows NT 6.1 (Build 7601: Service Pack 1)

       excel 为2010
*/

--1.<strong>设置sqlserver configuration manager->功能的外围应用配置器开启 openrowset和opendatasource功能</strong>

--2.<strong>设置参数值为非空(分别为允许进程和动态参数)</strong>
USE [master]    
GO    
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1    
GO    
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1    
GO    

或者
<strong>management studio->服务器对象->链接服务器->访问接口</strong>


select * from OPENDATASOURCE(     --openrowset()同样也可以用来访问本机中excel中的数据
         'Microsoft.Ace.OleDb.12.0',  --EXCEL版本为2010及以上版本可用,如果是2007及以下版本可用microsoft.jet.oled.4.0
         'Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="E:\test.xlsx"'  
         )...[test$]
或者
select * from opendatasource('Microsoft.ace.oledb.12.0', 'Excel 8.0;Database=e:\test.xlsx')...[test$]   


--<strong>使用opendatasource更新数据库中的表</strong>
update t1 set name=a.sname
from (select * from    OPENDATASOURCE(  
         'Microsoft.Ace.OleDb.12.0',  
         'Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="E:\test.xlsx"'  
         )...[test$]  ) a where t1.id=a.id


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章