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

Wie kann man herausfinden, welche Spalte beim Einfügen einen arithmetischen Überlauffehler auslöst?

Das folgende Skript würde SELECT erstellen Anweisungen für jede Integer-Spalte von Basetable .
Ausführen des resultierenden SELECT -Anweisungen sollten die problematischen Spalten in Ihrer Usertable lokalisieren .

SELECT  'PRINT ''' 
        + sc.Name 
        + '''; SELECT MIN(CAST(' 
        + sc.Name 
        + ' AS INTEGER)) FROM Usertable'
FROM    sys.columns sc 
        INNER JOIN sys.types st ON st.system_type_id = sc.system_type_id
WHERE   OBJECT_NAME(Object_ID) = 'BaseTable'
        AND st.name = 'INT'