Try this one
SELECT
COLUMN_NAME,
(CASE WHEN CAST(DATA_TYPE AS VARCHAR) IN ('int', 'tinyint') THEN DATA_TYPE
ELSE DATA_TYPE + ' (' + CONVERT(VARCHAR, ISNULL(CHARACTER_MAXIMUM_LENGTH,0)) + ')' END) AS DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Dtype'
ORDER BY ORDINAL_POSITION
You can keep on adding different types in the case clause, even you can also add a new WHEN in the CASE clause.
Hope it helps you...
Happy Coding... :)
Regards,
Vamsi