【发布时间】:2017-09-11 23:19:24
【问题描述】:
我有两列 latitude 和 longitude。我应该在从固定宽度文件导入时将它们设置为数字,但没有时间重新执行该过程。我正在使用 SQL Server Express 并且必须使用导入向导。共有 92 列。
无论如何,当我尝试将其从 varchar(9) 更改为 numeric (11,6) 时,使用以下代码并收到错误(如下所示)。我已将设置修改为可以更改名称和数据类型的位置。我知道在对象资源管理器中使用设计功能会产生类似的错误。有没有其他方法可以解决这个困境?
代码:
alter table dbo.tablename
alter column latitude numeric(11,6);
错误:
消息 8114,第 16 级,状态 5,第 1 行
将数据类型 varchar 转换为数值时出错。
刚刚找到如下代码:
alter table tablename
alter column latitude float
为什么这个有效,而不是以前的?
【问题讨论】:
-
标记你的 RDBMS,每个都有不同的语法。你确定里面的所有数据都是数字吗? '如果是 SQL-Server,请尝试运行:
SELECT MIN(ISNUMERIC(latitude)) FROM YourTable。你得到 1 还是 0 ? -
返回值 1。
标签: sql sql-server-express numeric varchar alter