IMZRH的日志

努力成为一个有用的人

导航

使用OPENROWSET将数据从excel导入到sql server

Posted on 2009-09-20 20:19  张荣华  阅读(3910)  评论(2编辑  收藏  举报
在做项目实施时,经常需要给用户提供一个excel模板,让用户根据自己的实际情况在excel中按要求录入一个基础数据(比如部门人员数据、在线考试的试题库、设备信息等),这样做的原因一个是因为用户一般对excel比较熟悉;另一个原因是使用excel的话客户可以直接从其它数据源导入,而不是从头开始录入。
当用户将处理好的电子表格交给我们后,一般实施人员会利用自己熟悉的工具将excel导入到系统数据表中,我以前一直用工具导入,但今天一同事告诉我可以直接用sql server的查询分析器完成这个功能,这个以前还真是没有试过,所以尝试了一下,发现确实挺好的,不需要工具,不需要配置,只是单纯的一个sql语句就可以了。下面让我们来看看怎么使用sql语句完成将excel导入到sql server中。
第一步:将制作好的excel放在本机,注意xls文件名要是英文的,另外xls的第一行应该是字段名。
第二步:打开查询分析器,输入以下语句:
-- 开启Ad Hoc Distributed Queries
exec sp_configure 'show advanced options',1 
reconfigure 
exec sp_configure 'Ad Hoc Distributed Queries',1 
reconfigure 

insert into  RT_PARA  (xlbh,msid,ywgd,dhz)--数据库表名,字段名
 select xlbh,msid,ywgd,dhz--excel中的字段名
 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\yewei.xls',Sheet1$ )-- 请注意xls的物理位置要写对

-- 关闭Ad Hoc Distributed Queries
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
第三步:执行语句,完成导入操作。
怎么样,很简单吧?