Precisión y escala de tipo numérico en SQL Server Express 2008 R2
-
29-10-2019 - |
Pregunta
Declaré una columna como numérica (5,3) en SQL Server 2008 Exp R2 y supuse que me permitiría guardar valores como 12345.123, pero cuando intenté ingresar cualquier cosa mayor que 100 me da un error de desbordamiento. Me hizo creer que en numérico (5,3), 5 representa la longitud total del número, incluida la precisión y la escala. Teniendo esto en mente, cambié el tipo de columna a decimal (9,3) y supuse que me permitiría ingresar valores como 123456.123, pero nuevamente da un error de desbordamiento. No puedo entender cómo este tipo de datos y su precisión y escala son interpretados por SQL Server.
Actualizar:
Lo extraño es que al insertar valor numérico (9,3) solo permite ingresar valores como 1234.123, pero al editar la fila puedo ingresar el valor 123456.123. No sé qué está pasando aquí :(
Solución
decimal(9,3)
debería funcionar bien para 123456.123
¡Por favor, verifíquelo nuevamente!
Ejecutivo
declare @d decimal(9,3) = 123456.123
no da error. Este tipo de datos permite 6 dígitos a la izquierda del punto decimal y 3 a la derecha.