您好,我正在尝试从 Excel 文件导入数据 (xls)
到新SQL table
所以我用Import and Export data 32/bit
为了实现这一点。当我加载 Excel 文件时,它会自动检测列的数据类型。例如电话号码列作为新表 float
的数据类型当我尝试更改 float
时,在 Excel 中为 Double(15)至nvarchar
我明白了:
Found 2 unknown column type conversion(s) You have selected to skip 1 potential lost column conversion(s) You have selected to skip 3 safe column conversion(s)
并且我不被允许继续导出。
尝试导入数据时有什么方法可以更改数据类型吗?
感谢您的宝贵时间。
这些数据设置为text
Excel中的数据类型
来自 Excel 中某一列的示例数据:
5859031783
5851130582
8811014190
这就是我得到的:
最佳答案
选择 Excel 工作表中的列并将数据类型更改为文本
然后转到你的sql server打开导入导出向导并执行选择源数据和bla bla的所有步骤,当你到达映射列
时,它将选择Float默认情况下
数据类型,您必须将其更改为 NVARCHAR(N)
在我的测试中我将其更改为 NVARCHAR(400),它给了我一个警告,可能会丢失一些数据因为我正在将数据从一种数据类型转换为另一种数据类型。
当您进入数据类型映射
页面时,请确保选中“转换”复选框。并酌情停止失败的进程。
经过所有这些步骤,终于在目标表中得到了我的数据,并带有相同的警告
,在所有微软担心太多之后,我已经转换了一些数据n bla bla :)
最后数据在Sql-Server表中
╔═══════╦════════════╦═════════╦════════════════╦══════════════╗
║ Name ║ City ║ Country ║ Phone ║ Float_Column ║
╠═══════╬════════════╬═════════╬════════════════╬══════════════╣
║ Shaun ║ London ║ UK ║ 04454165161665 ║ 5859031783 ║
║ Mark ║ Newyork ║ USA ║ 16846814618165 ║ 8811014190 ║
║ Mike ║ Manchester ║ UK ║ 04468151651651 ║ 5851130582 ║
╚═══════╩════════════╩═════════╩════════════════╩══════════════╝
关于sql - 从 Excel 导入数据向导自动检测数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20924554/