我想对我的数据库执行以下操作:
UPDATE Addresses
SET Latitude = 1000, Longitude = 1000
WHERE Latitude IS NULL AND Longitude IS NULL
1000不是有效的纬度或经度。 Latitude
和Longitude
是我的数据库中的新列,我不希望任何字段为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)
。我假设我必须以特定的方式编写这些小数条目,但我无法弄清楚它是什么。
有人可以启发我吗?
答案 0 :(得分:4)
您溢出了数据类型的指定参数。
DECIMAL(18,15)
表示您总共有18个名额,其中15个是小数点右侧。这留下了小数点左边的3个位置,1000是四位数。
您需要将数据类型更改为DECIMAL(18,14)
或使用999.999999999999999
之类的值。