把Excel导入到数据库:

两种方式(1是用sql语句导入;2是sql2005自带了一个功能)

第一种方法(sql语句):

在查询分析器里,直接写SQL语句:
--启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

--全部列

insert into 学籍信息 SELECT * FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=E:\学籍信息.xls',[学籍信息$])

--部分列
insert into 学籍信息 (学籍号,姓名) SELECT 学籍号,姓名 FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=E:\学籍信息.xls',[学籍信息$])**************************************************************************************

如果是导入数据到现有表,则采用
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式


如果是导入数据并新增表,则采用
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式。
 
以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以
INSERT INTO 表(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
 
其实可以将OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)当成一个表,例如我就写过这样一个句子: 
INSERT INTO eval_channel_employee(channel,employee_id)
SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END
,b.id FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) AS a,pers_employee b
WHERE a.员工编码=b.code
 

第二种方法(自带功能)我喜欢用的方法:

Excel数据导入sql 2005数据库_第1张图片 

右键管理——>导入数据——>(按照步骤到)选择数据源(注:这里你可以选择你要导入的文件 如Excel文件...)就像下面这个例子:

Excel数据导入sql 2005数据库_第2张图片

 然后按照步骤“下一步”

 

双击'目标'列 里是选择你要插入到那个表里,双击'源'列 里面是:

Excel数据导入sql 2005数据库_第3张图片 

里面可以选择是否删除目标表里的行 还是追加等等。点击确定之后,你可以预览是不是你想要的结果,依次按照步骤提示,直到完成!

祝你成功~