欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQL导入Excel文件

程序员文章站 2022-06-01 09:45:16
...

SQL导入Excel文件 如果表已存在,SQL语句为: insert into aa select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$] 其中,aa是表名,D:/OutData.xls是excel的全路径sheet1后

SQL导入Excel文件

如果表已存在,SQL语句为:

insert into aa select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$]

其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$

如果表不存在,SQL语句为:

SELECT * INTO aa FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$]

其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$,outdata.xls必须在SQL电脑上

可能会发生的异常:

如果发生“链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。”异常可能是excel文件未关闭.

如果发生“不能将值 NULL 插入列 'Grade',表 'student.dbo.StuGrade';列不允许有空值。INSERT 失败。

语句已终止。”异常,则可能是excel文件与数据库表中的字段不匹配

以上操作的是office 2003,如果要操作office 2007则需采用如下方式

如果表已存在,SQL语句为:

insert into aa select * from OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',

'Data Source=D:/OutData.xls;Extended Properties=Excel 12.0')...[sheet1$]

其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$

如果表不存在,SQL语句为:

SELECT * INTO aa FROM OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',

'Data Source=D:/OutData.xls;Extended Properties=Excel 12.0')...[sheet1$]

其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$

如果发生“链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。”异常可能是excel文件未关闭.

如果发生“不能将值 NULL 插入列 'Grade',表 'student.dbo.StuGrade';列不允许有空值。INSERT 失败。

语句已终止。”异常,则可能是excel文件与数据库表中的字段不匹配

以上操作的是office 2003,如果要操作office 2007则需采用如下方式

另外,,还要对一些功能进行配置:

1、打开SQL Server 2005外围应用配置器,选择“功能的外围应用配置器”,选中“启用OPENROWSET或OPENDATASOURCE支持”,点击确定。

2、在C:/WINDOWS目录下将temp文件夹的安全选项卡中,在用户或组名称中,选择“SQLServer2005ReportingServicesWebServiceUser$PC17$MSSQLSERVER(PC17/SQLServer2005ReportingServicesWebServiceUser$PC17$MSSQLSERVER”用户,将此用户的写入,修改权限选中。点击确定。(设置它是因为将此将excel文件读入SQL数据库时,是在C:/WINDOWS/temp下建立了一个临时文件,所以需要将此文件夹的SQLServer2005权限设置为可写入的。如果使用的是管理员帐户,则需要不需此项设置。因为管理员有读写的权限。)

posted on