Fastest way to query column names from a table

All we need is an easy explanation of the problem, so here it is.

I am looking for the fastest way to query the a list of columns from a given table in a database. I realize the INFORMATION_SCHEMA.columns view exists in Microsoft SQL Server.

However, in PostgreSQL, I recall using the INFORMATION_SCHEMA.columns to get a list of columns from a particular table and through experimentation if I remember correctly I found the following to be faster than using the information schema:

    SELECT *
    FROM pg_catalog.pg_tables
    WHERE schemaname != 'pg_catalog' 
    AND schemaname != 'information_schema'; 

From personal experience, querying might take 10ms on an objects table but 200ms from the information schema.

Does SQL Server have an equivalent faster way to get the list of columns from a given table like PostgreSQL does?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

You are looking for sys.columns and sys.tables from the Object Catalog Views.

Performance differences aren’t usually a concern for SQL Server, but the information schema views aren’t well maintained and don’t provide full coverage. See The case against INFORMATION_SCHEMA views by Aaron Bertrand.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply