Hola Halconds:
Tienes que recordar que NUMERIC es un tipo de datos flotante, es decir puede almacenar números decimales... hablar de caracteres cuando se está refiriendo a números puede traer problemas. por ejemplo 11.11 es un número de 4 cifras y 5 caracteres (tomando en cuenta el punto decimal).
Al especificar una escala de 0 (segundo parámetro de numeric) estás especificando que los campos NO VAN A ALMACENAR NÚMEROS DECIMALES). puedes probar este ejemplo:
Código SQL:
Ver originalDECLARE @Tabla TABLE (campo1 NUMERIC(6, 2), campo2 NUMERIC (6, 0))
INSERT INTO @Tabla VALUES (11, 11)
-->Correcto, ninguna cifra contiene decimales
INSERT INTO @Tabla (campo1) VALUES (111111)
-->Error, tiene sólo 4 cifras para la parte entera y 2 para decimales
INSERT INTO @Tabla (campo2) VALUES (111111)
-->Correcto, pues no hay decimales
INSERT INTO @Tabla (campo1) VALUES (1111.11)
-->Correcto, tiene 4 enteros y 2 decimales
INSERT INTO @Tabla (campo2) VALUES (1111.11)
-->No marca errro, pero no almacena la parte decimal
INSERT INTO @Tabla (campo1) VALUES (1111.2222)
-->En la tabla se almacena sólo 2 decimales
SELECT * FROM @Tabla
Debes tener cuidado entonces al momento de diseñar tus tablas de poner el tipo de datos correcto.
Saludos
Leo.