从Excel向导导入数据会自动检测数据类型

时间:2014-01-04 17:57:20

标签: sql sql-server excel sql-import-wizard

您好我正在尝试将数据从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

这就是我得到的:

enter image description here

2 个答案:

答案 0 :(得分:19)

在Excel工作表中选择列,并将数据类型更改为文本

enter image description here

然后转到你的sql server打开导出导出向导,当你到达Mapping Column时,执行选择源数据和bla bla的所有步骤,它将选择Float数据类型默认情况下,你必须在我的测试中将其更改为NVARCHAR(N)我将其更改为NVARCHAR(400),它给了我一个警告,我可能会丢失一些数据,因为我正在将数据从1 datatyep转换为另一个。

enter image description here

当您到达Data Type Mapping页面时,请确保选择转换复选框。并酌情停止失败的过程。

enter image description here

完成所有这些步骤后,终于将我的数据放在目标表中,使用相同的Warning,我已经转换了一些数据n bla bla,因为所有的微软担心太多了:)

enter image description here

最后在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 中修复表规范并没有那么令人沮丧。