Я пытаюсь написать инструкцию insert для таблицы SQL Server, которая вставляет значение 1 в десятичное поле. Поле имеет тип decimal (10, 10), который, насколько я понимаю, означает, что он может иметь до 10 цифр в целом, и до десяти из этих цифр может быть после десятичной точки. Но, когда я пытаюсь запустить оператор вставки, я получаю следующее сообщение об ошибке:Почему я не могу ввести целочисленное значение в десятичное поле?
Arithmetic overflow error converting int to data type numeric.
Если изменить тип данных поля в десятичном (11, 10), он вдруг работает. Что я здесь не понимаю? Что я делаю не так?
Я все еще смущен. В нем говорится, что масштаб является «* максимальным * числом десятичных цифр, которые могут храниться справа от десятичной точки» - не то, что должно быть 10. – froadie
Да, но это не значит, что это скользящая десятичная точка. Импликация заключается в том, что вы предоставляете меньше 10 цифр справа, остальные - нули. – Joe
@Joe, я не уверен точно, что вы пытаетесь сказать, но если вы запустите 'declare @x decimal (5,2), установите @ x = 1.123456789, выберите @x; установите @ x = 1; выберите @ x' вы получите '1.12' и' 1.00'. Когда вы объявляете десятичное число, число цифр слева и справа от десятичной точки фиксировано, сдвиг десятичной точки не происходит. –