I can get the number of columns in an SQL Server database with this:
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = \'Address\'
Instead of using count(*) you can SELECT * and you will return all of the details that you want including data_type:
count(*)
SELECT *
data_type
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'Address'
MSDN Docs on INFORMATION_SCHEMA.COLUMNS