首页>>数据库>>SQLServer 2005与excel之间的导入导出
SQLServer 2005与excel之间的导入导出
来源: 时间: 2015-01-06 14:41:18

一、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服务,启用和关闭方法和上面一样,这里不再重复。

本页地址:http://www.easytd.com/shujuku/d_15010614207.html

上一篇:MYSQL中如何在配置文件中设置mysql编码格式 下一篇:MSSQL查询使用charindex函数代替instr函数