BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #4957同步于 2010/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

如何把excel中的表格导入到sql sever 2005中去啊?

tcfangwei
2010/10/29镜像同步1 回复
求教
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
jinchenguang机器人#1 · 2010/11/1
【 在 tcfangwei 的大作中提到: 】 : 求教 : -- 1、数据表已经创建,Excel首行作为表头 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure go --开始查询数据 insert into tablename SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel8.0;IMEX=1;HDR=YES;DATABASE=C:\excelname.xls',[Sheet1$]) --使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 2、直接导入数据,同时生成相应表 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure go --开始查询数据 SELECT * into tablename FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel8.0;IMEX=1;HDR=YES;DATABASE=C:\excelname.xls',[Sheet1$]) --使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 3、导入Excel中指定的列到SqlServer表中指定的列 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure go --开始查询数据 insert into tablename(Colum1,Colum2,…,ColumX) select Colum1,Colum2,…,ColumX FROM OPENROWSET ('MICROSOFT.JET.OLEDB.4.0','Excel8.0;IMEX=1;HDR=YES;DATABASE=C:\excelname.xls', [Sheet1$]) --使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 经常会遇到的错误及相应解决方法 情况1: 如果发生“链接服务器 "(null)" 的 OLE DB 访问接口"Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口"Microsoft.Jet.OLEDB.4.0"的数据源对象。 异常可能是excel文件没有关闭 情况2: 服务器: 消息 232,级别 16,状态 2,行 1发生类型 varchar 的算术溢出错误,值 = XXX。语句已终止。 异常可能是excel中的数据不符SqlServer表格中字段长度要求,可以先导入临时表,再查看临时表以检查数据 Sql语句如下: SELECT * into #cancelpostulantinformation FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel8.0;IMEX=1;HDR=YES;DATABASE=C:\cancelpostulantinformation.xls',[Sheet1$]) 情况3: SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。 异常可能是没有启用并关闭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 go --使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 注意: 1、HDR表示是否把第一排设置成表头,即 当HDR=YES时,Excel表中的首行应为字段行, 当HDR=NO时Excel表中就不应该包括字段的内容 2、外围应用配置器的设置,从“功能外围应用配置器”中选择“启动Openrowset和Opendatasource支持”选项 3,关闭Excel表格 4、IMEX 参数,不同的模式代表著不同的读写行为: 当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。 当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。 当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。