sqlserver 倒入数据

本文详细介绍如何将Excel数据导入SQL Server数据库,包括手动导入和SQL语句导入两种方法。解析了常见错误如OLEDB权限问题及路径配置错误,并提供了具体解决方案。深入探讨了HDR=YES与IMEX参数在数据导入过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方法:手动导入

在数据库上右键---任务---导入数据---按照向导导入数据

第二种:用SQL语句导入

SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel 5.0;DatabASE=[Excel表.xsl文件的路径];HDR=YES;IMEX=1 ', Sheet1$')

来读取Excel表中的数据,读出来的数据跟从数据库中的表读出的数据是一样,也包括字段名和数据。当然我们也可以用字段名列表来获取Excel表中的部门数据。

SELECT 字段1, 字段2,字段3 [...] FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel 5.0;DatabASE=[Excel表.xsl文件的路径];HDR=YES;IMEX=1 ', Sheet1$')
?
insert into my_test select 编号, 姓名, 备注 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=e:\\test.xls',sheet1$)
?
要是有问题的话
问题一】:已拒绝对 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。
分析】:这是因为您当前用来访问数据库的登录的权限不够(权限太低)。
解决】:要么您还用sa登录,要么修改当前登录的权限,步骤如下:企业管理器→安全性→登录→找到你所用的登录名→右击"属性"→服务器角色→将System Administrator选项打钩→确定即可。
问题二】:OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。 OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
分析】:
首先先检查一下你用来导入的Excel表是否已经打开,如果打开了,请关闭后重试一下。
还是不行的话,继续往下看。如果你用来数据库操作的sql语句是用striing字符串保存的,且其中包含着.xsl文件的存放路径。那么问题可能就出在这个路径上。您是否值用了一个斜杠"\"。如果只有一个斜杠的话,在运行前,错误列表中会提示"无法识别转义序列"。一旦运行,该提示就会消失,可能您就是因为这样而没有注意到这错误。
解决】:把单斜杠("\") 改成 双斜杠("\\") 如:e:\\aillo\\tt.xsl
 
========================================================================================

Excel导入的HDR=YES; IMEX=1详解

参数HDR的值:
HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES

参数Excel 8.0
对于Excel 97以上版本都用Excel 8.0

IMEX ( IMport EXport mode )设置

  IMEX 有三种模式,各自引起的读写行为也不同,容後再述:

  0 is Export mode

  1 is Import mode

  2 is Linked mode (full update capabilities)

  我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:

  当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。

  当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。

  当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。

意义如下:

0 ---输出模式;
1---输入模式;
2----链接模式(完全更新能力)

转载于:https://www.cnblogs.com/ANLOG/archive/2012/09/03/2669111.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值