Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1522717
  • 博文数量: 226
  • 博客积分: 3997
  • 博客等级: 少校
  • 技术积分: 2369
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-19 17:26
个人简介

Never save something for a special occasion. Every day in your life is a special occasion.

文章分类

全部博文(226)

文章存档

2018年(5)

2017年(11)

2016年(1)

2015年(17)

2014年(14)

2013年(30)

2012年(5)

2011年(52)

2010年(107)

分类: 数据库开发技术

2011-12-29 20:58:17

怎样用SQL Server 2008 SQL语句将Excel数据导入到数据库里指定的表里面 ?

在查询分析器里,直接写 SQL语句: 

如果是导入数据到现有表,则采用形式
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

简单的方法:
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。 操作过程如下:
第一步:登录到 SQL Server Management Studio 
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ” 
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题) 
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ” 
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。 

你试下下面的吧: 
打开SQL Server Configuration Manager,启用SQL Server Agent(实例名)。 启动模式更改为“自动”

http://blog.sina.com.cn/s/blog_48e42dc90100n1m3.html

阅读(15299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~