• Another quick fix - the size computation is missing for columns of type "varbinary" - I added this to the long query that computes the column type, length, and nullability:

    WHEN TYPE_NAME(sys.columns.[user_type_id]) = 'varbinary'

    THEN

    CASE WHEN sys.columns.[max_length] = -1

    THEN '(max)'

    + SPACE(6 - LEN(CONVERT(VARCHAR,(sys.columns.[max_length]))))

    + SPACE(7)

    + SPACE(16 - LEN(TYPE_NAME(sys.columns.[user_type_id])))

    + CASE WHEN sys.columns.[is_nullable] = 0

    THEN ' NOT NULL'

    ELSE ' NULL'

    END

    ELSE '('

    + CONVERT(VARCHAR,(sys.columns.[max_length]))

    + ') '

    + SPACE(6 - LEN(CONVERT(VARCHAR,(sys.columns.[max_length]))))

    + SPACE(7)

    + SPACE(16 - LEN(TYPE_NAME(sys.columns.[user_type_id])))

    + CASE WHEN sys.columns.[is_nullable] = 0

    THEN ' NOT NULL'

    ELSE ' NULL'

    END

    END

    There is also a bug in the nvarchar size handling - the "-1" isn't enough, as a NVARCHAR(MAX) has a length of 8000 - an inconsistency within SQL Server.... I haven't tackled that yet - just did a search and replace.

    David