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

时间:2011-08-24 12:41:33

标签: sql-server-2008

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

UPDATE Addresses

SET Latitude = 1000, Longitude = 1000
WHERE Latitude IS NULL AND Longitude IS NULL

1000不是有效的纬度或经度。 LatitudeLongitude是我的数据库中的新列,我不希望任何字段为null。我在我的应用程序中处理了无效的纬度和经度值,但将它们置为null会产生困难。

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

Msg 8115, Level 16, State 8, Line 3
Arithmetic overflow error converting int to data type numeric.
The statement has been terminated.

“纬度”和“经度”列的数据类型均为Decimal(18,15)。我假设我必须以特定的方式编写这些小数条目,但我无法弄清楚它是什么。

有人可以启发我吗?

1 个答案:

答案 0 :(得分:4)

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

DECIMAL(18,15)表示您总共有18个名额,其中15个是小数点右侧。这留下了小数点左边的3个位置,1000是四位数

您需要将数据类型更改为DECIMAL(18,14)或使用999.999999999999999之类的值。