Sql server 2008 更新SQL Server中的十进制值字段

Sql server 2008 更新SQL Server中的十进制值字段,sql-server-2008,Sql Server 2008,我想对我的数据库执行以下操作: UPDATE Addresses SET Latitude = 1000, Longitude = 1000 WHERE Latitude IS NULL AND Longitude IS NULL 1000不是有效的纬度或经度Latitude和Longitude是数据库中的新列,我不希望任何字段为空。我在应用程序中处理无效的纬度和经度值,但将它们设为null会带来困难 尝试运行此查询时,出现以下错误: Msg 8115, Level 16, State 8,

我想对我的数据库执行以下操作:

UPDATE Addresses

SET Latitude = 1000, Longitude = 1000
WHERE Latitude IS NULL AND Longitude IS NULL
1000不是有效的纬度或经度
Latitude
Longitude
是数据库中的新列,我不希望任何字段为空。我在应用程序中处理无效的纬度和经度值,但将它们设为null会带来困难

尝试运行此查询时,出现以下错误:

Msg 8115, Level 16, State 8, Line 3
Arithmetic overflow error converting int to data type numeric.
The statement has been terminated.
纬度和经度列的数据类型都是
十进制(18,15)
。我假设我必须以一种特殊的方式来写这些十进制条目,但我无法计算出它是什么


有人能告诉我吗?

您正在溢出数据类型的指定参数。

DECIMAL(18,15)
表示总共有18位,其中15位在小数点的右边。小数点后剩下3位,1000是四位数


您需要将数据类型更改为类似于
DECIMAL(18,14)
的值,或者使用类似于
999.999999999999的值

哎哟,对了。不是浮点数。我应该注意到这一点。谢谢你的提醒。