Обновление десятичных полей в SQL Server - PullRequest
2 голосов
/ 24 августа 2011

Я хочу сделать со своей базой данных следующее:

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.

Типы данныхоба столбца широты и долготы Decimal(18,15).Я предполагаю, что я должен написать эти десятичные записи определенным образом, но я не могу понять, что это такое.

Может ли кто-нибудь просветить меня?

1 Ответ

4 голосов
/ 24 августа 2011

Вы переполняете указанные параметры для типа данных.

DECIMAL(18,15) означает, что у вас есть всего 18 мест, и 15 из них являются правыми десятичного числа. Это оставляет 3 знака слева от десятичного разделителя, а 1000 - это четырехзначное число .

Вам нужно либо изменить тип данных на что-то вроде DECIMAL(18,14), либо использовать значение, например 999.999999999999999.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...