分享下sql导入excel文件的方法。
如果表已存在,sql语句为:
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$
如果表不存在,SQL语句为:
其中,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语句为:
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$
如果表不存在,SQL语句为:
其中,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权限设置为可写入的。
如果使用的是管理员帐户,则需要不需此项设置。因为管理员有读写的权限。)