Find tables without foreign keys in SQL Server database

Query below lists all tables that do not have foreign keys.

See also:

Query

select schema_name(fk_tab.schema_id) as schema_name,
    fk_tab.name as table_name,
    '>- no FKs' foreign_keys
from sys.tables fk_tab
    left outer join sys.foreign_keys fk
        on fk_tab.object_id = fk.parent_object_id
where fk.object_id is null
order by schema_name(fk_tab.schema_id),
    fk_tab.name

Columns

  • schema_name - table schema name
  • table_name - table name
  • foreign_keys - symbol indicating lack of FKs

Rows

  • One row represents one table that doesn't have a foreign key
  • Scope of rows: all tables in a database that don't have foreign keys (do not refer to other tables)
  • Ordered by schema and table name

Sample results

List of tables in AdventureWorks without foreign keys: