转:Excel 导入 Sql Server出错—文本被截断,或者一个或多个字符在目标代码页中没有匹配...

本文介绍了解决SQLServer导入Excel数据时遇到的问题,即当Excel中的数据超过255字符时出现错误的情况。文章提供了通过修改注册表中TypeGuessRows值的方法来避免这一问题。

有人说应该先转成Access, 再转到Sql Server。 其实用处并不大, 要截断的还是被截断了。


原因是,SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别。如果前8条是少于255的字符串,则设成nvarchar(255)类型,但如果Excel后面的记录中有长度超过255的,导入时就会出错。即使在导入设置映射时调整了该字段的长度也不行。

 

解决的办法是改注册表

如果是:Jet引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

如果是:ACE引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
然后找到 TypeGuessRows这个项.默认为8的.修改为0.


转载于:https://my.oschina.net/gaopeng8/blog/549081

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值