Hola valderramalex:
¿Cómo estás haciendo el insert?, directamente en SQL Managment o utilizando algún lenguaje de programación?, ¿El error está al almacenar el dato o al recuperarlo?. SQL no debería aplicar ningún redondeo o aproximación, checa este ejemplo:
Código SQL:
Ver originalDECLARE @tabla TABLE (campo DECIMAL(20, 20))
INSERT INTO @tabla VALUES (0.00000407692339053257)
INSERT INTO @tabla VALUES (0.12345678901234567890)
INSERT INTO @tabla VALUES (0.98765432109876543210)
SELECT * FROM @tabla;
campo
---------------------------------------
0.00000407692339053257
0.12345678901234567890
0.98765432109876543210
Esta consulta la ejecuté directamente en el SQL Managment y como podrás observar NO SE PIERDE LA PRECISIÓN, el select muestra los mismos datos que se insertaron.
Saludos
Leo.