sql-servert-sqldatabase-table

How do I get list of all tables in a database using TSQL?


What is the best way to get the names of all of the tables in a specific database on SQL Server?


Solution

  • SQL Server 2000, 2005, 2008, 2012, 2014, 2016, 2017 or 2019:

    SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
    

    To show only tables from a particular database

    SELECT TABLE_NAME 
    FROM [<DATABASE_NAME>].INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_TYPE = 'BASE TABLE'
    

    Or,

    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_TYPE = 'BASE TABLE' 
        AND TABLE_CATALOG='dbName' --(for MySql, use: TABLE_SCHEMA='dbName' )
    

    PS: For SQL Server 2000:

    SELECT * FROM sysobjects WHERE xtype='U'