您好我正在尝试将数据从Excel文件(xls)
导入新SQL table
,因此我使用Import and Export data 32/bit
来实现这一目标。当我加载excel文件时,它会自动检测列的数据类型。例如当我尝试将float
更改为float
nvarchar
的数据类型,而excel则为Double(15)
我明白了:
找到2个未知的列类型转换 您已选择跳过1个可能丢失的列转换 您已选择跳过3个安全列转换
我不允许继续出口。
尝试导入数据类型时有没有办法改变数据类型?
感谢您的时间。
这些数据在excel中设置为text
数据类型
来自excel中其中一列的示例数据:
5859031783
5851130582
8811014190
这就是我得到的:
答案 0 :(得分:19)
在Excel工作表中选择列,并将数据类型更改为文本
然后转到你的sql server打开导出导出向导,当你到达Mapping Column
时,执行选择源数据和bla bla的所有步骤,它将选择Float
数据类型默认情况下,你必须在我的测试中将其更改为NVARCHAR(N)
我将其更改为NVARCHAR(400),它给了我一个警告,我可能会丢失一些数据,因为我正在将数据从1 datatyep转换为另一个。
当您到达Data Type Mapping
页面时,请确保选择转换复选框。并酌情停止失败的过程。
完成所有这些步骤后,终于将我的数据放在目标表中,使用相同的Warning
,我已经转换了一些数据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 ║
╚═══════╩════════════╩═════════╩════════════════╩══════════════╝
答案 1 :(得分:0)
我非常不喜欢 SQL Server 导入/导出向导。
这不是一个直接的答案,但我发现采用向导的最佳猜测然后在 SQL Server 中修复表规范并没有那么令人沮丧。