SQL SERVER2005 excel float导入

本文解决了从Excel导入SQL Server时遇到的数据类型转换问题,特别是数值字段被误转为浮点型导致的数据精度丢失。通过调整数据库字段类型为numeric,并进行二次转换为nvarchar的方式成功避免了科学计数法的出现。

  接到mission:将一堆excel的东西导入到SQL SERVER2005

   命令很easy

SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

    首先一个问题就让我崩溃N久,每次调用导入excel的命令就出错。后来是因为别人提供的excel格式错误 我狂晕。。。

 

    第二个问题就是,在excel中的数据,比如学号12345678,在SQL中的数据库存储类型的nvarchar(255),可是从excel导入的时候默认就转化成了float型,很崩溃。

   假如修改float型的字段,改成nvarchar的类型,那相应的值自动就变成了科学计数法,1.234*e+007之类。对于学号来说,显然是错误的。

找了N多方案,,均不能解决问题。

   不过后来还是搞定了,,怎么想到就不说了,嘿嘿 直接说solution

   新建数据库,与excel中数字对应的字段类型设为numberic(30,0),然后从excel读入数据,存储到对应的字段后,再改变数据类型为nvarchar 就不会出现科学计数法了。~~

 

   OK。

转载于:https://www.cnblogs.com/herbert09/p/3543840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值