我有两列latitude
和longitude
。我应该在从固定宽度文件导入时将它们设置为数字,但没有时间重新执行该过程。我正在使用SQL Server Express,必须使用导入向导。有92列。
无论如何,当我尝试将其从varchar(9)
更改为numeric (11,6)
时,使用以下代码并收到错误(如下所示)。我已将设置修改为可以更改名称和数据类型的位置。我知道在对象资源管理器中使用设计功能会产生类似的错误。还有其他方法可以解决这个困境吗?
代码:
alter table dbo.tablename
alter column latitude numeric(11,6);
错误:
Msg 8114,Level 16,State 5,Line 1
将数据类型varchar转换为数字时出错。
刚刚找到以下代码:
alter table tablename
alter column latitude float
为什么这样做,但不是以前的?
答案 0 :(得分:1)
您需要找到一个值。我不确定SQL Server Express是否支持isnumeric()
,所以这是一种可能性:
select latitude
from tablename
where isnumeric(latitude) = 0;
否则,您可以使用like
:
where latitude not like '%[^0-9.]%' and
latitude not like '%.%.%'