List table columns in SQL Server database

Query below lists all table columns in a database.


select schema_name(tab.schema_id) as schema_name, as table_name, 
    col.column_id, as column_name, as data_type,    
from sys.tables as tab
    inner join sys.columns as col
        on tab.object_id = col.object_id
    left join sys.types as t
    on col.user_type_id = t.user_type_id
order by schema_name,


  • schema_name - schema name
  • table_name - table name
  • column_id - table column id, starting at 1 for each table
  • column_name - name of column
  • data_type - column data type
  • max_length - data type max length
  • precision - data type precision


  • One row represents one table column
  • Scope of rows: all columns in all tables in a database
  • Ordered by schema, table name, column id

Sample results

You could also get this

Get this interactive HTML data dictionary in minutes with Dataedo.

See live HTML data dictionary sample

Try for free

Comments are only visible when the visitor has consented to statistics cookies. To see and add comments please accept statistics cookies.
There are no comments. Click here to write the first comment.