• Because for INT and DECIMAL the value for CHARACTER_MAXIMUM_LENGTH is a NULL value. Adding a NULL value to a string will result in a NULL value.

    Change the CASE statement to:

    , DATA_TYPE

    + CASE

    WHEN CHARACTER_MAXIMUM_LENGTH IS NULL

    THEN ''

    WHEN Cast(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(5)) = - 1

    THEN '(Max)'

    ELSE '(' + Cast(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(5)) + ')'

    END AS [Type]

    ** Don't mistake the ‘stupidity of the crowd’ for the ‘wisdom of the group’! **