How to List Tables in SQL Server
Last updated July 25, 2026 · By the SaturnSQL team
Query sys.tables for all tables in the current database, or INFORMATION_SCHEMA.TABLES for the portable version. Filter INFORMATION_SCHEMA on TABLE_TYPE = 'BASE TABLE' to exclude views.
sys.tables covers the current database and needs the join to sys.schemas because it stores schema_id rather than the schema name. It excludes views, which is usually what you want. It also carries extras the standard views lack, such as create_date, modify_date, and is_ms_shipped for filtering out system objects.
SELECT s.name AS schema_name, t.name AS table_name
FROM sys.tables t
JOIN sys.schemas s ON s.schema_id = t.schema_id
ORDER BY s.name, t.name;Portable version
INFORMATION_SCHEMA.TABLES is standard SQL and behaves the same on other engines, which matters if the query is shared or lives in a tool targeting several databases. It mixes tables and views together, so the TABLE_TYPE filter is not optional. Microsoft's own guidance is to prefer the sys catalog views when you need accuracy about SQL Server specifics.
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_SCHEMA, TABLE_NAME;Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free