我在将数据nvarchar转换为float时遇到警告信息?
' Table2014'表 - 警告:数据可能会丢失,转换列' S4'来自' nvarchar(255)'。 - 保存定义对包含大量数据的表进行更改可能需要相当长的时间。在保存变更的同时 表格数据将无法访问。
这是什么意思,它会从列中删除一些数据吗?
答案 0 :(得分:2)
因为当前列是nvarchar,所以当前记录(字符串)很可能不代表有效的浮点数。
因此,当您更改表数据类型时,这些条目将无法正确转换(只有float的有效nvarchar reprasantions将被转换)
编辑: 听起来有点特别的是让这种数据类型改变。 (一般情况下,您将丢失数据)。
如果您想要更安全,请尝试:
ALTER TABLE mytable ADD new_column float
update mytable
set new_column = convert(float, S4)
如果满意的话:
ALTER TABLE mytable DROP COLUMN S4
答案 1 :(得分:0)
根据我的理解,警告说当转换发生时,如果使用数据库的任何人尝试更新信息,则不会保存,因为无法读取/写入数据直到转换完成。
话虽如此,虽然在这种情况下我不确定float的大小,如果它小一些/设置为小于255个字符,你可能会遇到截断数据,所以这需要仔细检查。
编辑: apomene提出了一个好点:如果任何数据不是有效的浮点数,它不会转换,因此会丢失。