一、sql2005中导入excel中数据
方法一:
利用SQL Server2005自带的DTS工具,手工导入,详细操作请看图。
具体操作为:
导入成功后,表中数据如下所示:
方法一优缺点:
优点:傻瓜式操作,操作简单,容易掌握。
缺点:用此种方法导入时,excel表格必须很规范才行,也就是说如果想导入后表中的字段和excel表的标题行对应,那么标题行最好放在excel表格的第一行,否则导入的数据很混乱。而且当数据不完整或者数据格式不正确的情况下,使用向导也会出错。这时就要采用方法二。
方法二:
在查询分析器里,直接写 SQL语句:
1、如果是导入数据到现有表,则采用
INSERT INTO 表名 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=d:\test.xls',sheet1$)
的形式
2、如果是导入数据并新增表,则采用
SELECT * INTO 表名 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=d:\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=d:\test.xls',sheet1$)
注意:SQL Server数据库远程操作中,在使用OPENROWSET /OPENDATASOURCE前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的。
(1)启用Ad Hoc Distributed Queries的方法
启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
(2)关闭Ad Hoc Distributed Queries的方法:使用完毕后,记得一定要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
方法二优缺点:
优点:在用DTS工具导入无法成功时,可以采用该方法。较方法一成功率较高。
缺点:要用到语句,操作复杂,语句不好记,且在运行语句时要注意的问题较多。
sql2005中数据导出至excel中数据
方法一:利用SQL Server2005自带的DTS工具,手工导出
和上面一样,只是选择导出数据即可,数据源和数据目标正好相反,这里不再赘述。
方法二:
在查询分析器里,直接写 SQL语句:
如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=d:\test.xls',sheet1$)
select * from 表
这里同样注意在运行导出语句前先启用Ad Hoc Distributed Queries服务,运行完后,再关闭d Hoc Distributed Queries服务,启用和关闭方法和上面一样,这里不再重复。