sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo averiguar qué columna genera un error de desbordamiento aritmético al insertar?

El siguiente script crearía SELECT declaraciones para cada columna de enteros de Basetable .
Ejecutar el SELECT resultante las declaraciones deben identificar las columnas ofensivas en su Usertable .

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'