读书人

EXCEL导入SQL后数据类型有关问题

发布时间: 2013-03-06 16:20:31 作者: rapoo

EXCEL导入SQL后数据类型问题
SELECT * into VIP20130226
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\VIP20130226.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
go

定义列code,materialid,price,quantity,storeid,storename,vipwldz 全部为nvarchar(255)
excel表有如下列:(原EXCEL表)
code,materialid,price,quantity,storeid,storename, vipwldz
10101009012230半成品仓 0
101030010184400半成品仓 0
10103012048450半成品仓 0

使用上面的导入SQL里面后 (导入SQL后),经在SQL里面查看code数据类型float......
code,materialid,price,quantity,storeid,storename, vipwldz
10101009.00.0122.03.00.0半成品仓0.0
10103001.00.0184.040.00.0半成品仓0.0
10103012.00.048.045.00.0半成品仓0.0

在SQL里面把该表改数据类型后数据就变得更离谱了

要求:如何可以设置导入后的SQL数据跟EXCEL数据一致?
[解决办法]
这个是根据数据来自动判断数据类型的。文本经常就直接成数字的了。
之前是这样做的,into 一个中间表,整理数据,(包括格式),到最终要导入的表中。

如果比较固定的业务,可以使用ssis的包进行批量处理。

[解决办法]

引用:
请问我在SQL里面先建立个表结构,如果可以把EXCEL指定列导入到SQL里面的表的指定列???


这个可以,excel默认格式类型为数值型,一般数值类的可以正常转换,但是字符类的话可能会转换为科学计数法,这类的数据一般可以在粘贴到excel中前,先将列设置为文本型
后设置不管用(后设置我不知道怎么调能出文本型标识的那个绿色小三角号)

现有数据的话,我一般先将其转换为bigint,然后再转换为varchar,2000有bigint类型吗~

读书人网 >SQL Server

热点推荐