Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Arithmetischer Überlauffehler beim Konvertieren von numerisch in den Datentyp numerisch

Ich vermute, dass Sie versuchen, eine Zahl größer als 99999,99 in Ihre Dezimalfelder zu drücken. Das Ändern in (8,3) wird nichts bewirken, wenn es größer als 99999,999 ist - Sie müssen die Anzahl der Stellen vorher erhöhen die Dezimalstelle. Sie können dies tun, indem Sie die Genauigkeit erhöhen (das ist die Gesamtzahl der Ziffern vor und nach dem Dezimalzeichen). Sie können die Skala unverändert lassen, es sei denn, Sie müssen die Anzahl der zu speichernden Dezimalstellen ändern. Versuchen Sie es mit decimal(9,2) oder decimal(10,2) oder was auch immer.

Sie können dies testen, indem Sie insert #temp auskommentieren und sehen Sie, welche Zahlen Ihnen die select-Anweisung gibt, und sehen Sie, ob sie größer sind, als Ihre Spalte verarbeiten kann.