Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur de débordement arithmétique lors de la conversion de numérique en type de données numérique

Je suppose que vous essayez de presser un nombre supérieur à 99999,99 dans vos champs décimaux. Le changer en (8,3) ne fera rien s'il est supérieur à 99999.999 - vous devez augmenter le nombre de chiffres avant la décimale. Vous pouvez le faire en augmentant la précision (qui est le nombre total de chiffres avant et après la virgule). Vous pouvez laisser la même échelle sauf si vous devez modifier le nombre de décimales à stocker. Essayez decimal(9,2) ou decimal(10,2) ou autre.

Vous pouvez tester cela en commentant le insert #temp et voyez quels nombres l'instruction select vous donne et voyez s'ils sont plus grands que ce que votre colonne peut gérer.