Find all tables containing column with specified name

To find all tables in a database that contain a column with a specified name, you can query the system catalogs or information schema depending on the database system you are using. Here’s how you can do it:


1. SQL Server

In SQL Server, metadata about tables and columns is stored in system views such as INFORMATION_SCHEMA or sys.

Query:

sqlCopy codeSELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'YourColumnName';
  • COLUMN_NAME: Replace with the name of the column you want to search for.
  • TABLE_SCHEMA: Provides the schema where the table resides.
  • TABLE_NAME: Returns the names of tables containing the column.

Alternatively, you can use the sys catalog:

sqlCopy codeSELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, 
       OBJECT_NAME(object_id) AS TableName
FROM sys.columns
WHERE name = 'YourColumnName';

2. MySQL

In MySQL, you can query the INFORMATION_SCHEMA.COLUMNS table to find all tables containing the column.

Query:

sqlCopy codeSELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'YourColumnName';
  • TABLE_SCHEMA: The database/schema name.
  • TABLE_NAME: The table name containing the column.

3. PostgreSQL

PostgreSQL stores metadata in the pg_catalog schema. You can use the following query:

Query:

sqlCopy codeSELECT table_schema, table_name
FROM information_schema.columns
WHERE column_name = 'yourcolumnname';
  • table_schema: The schema where the table resides.
  • table_name: The table name containing the column.

4. Oracle

In Oracle, you can query the ALL_TAB_COLUMNS view to search for tables containing the column:

Query:

sqlCopy codeSELECT OWNER, TABLE_NAME
FROM ALL_TAB_COLUMNS
WHERE COLUMN_NAME = 'YOURCOLUMNNAME';
  • OWNER: The schema owner.
  • TABLE_NAME: The name of the table containing the column.

5. SQLite

SQLite does not have a built-in INFORMATION_SCHEMA, but you can query its sqlite_master table or use PRAGMA commands:

Query with PRAGMA:

sqlCopy codePRAGMA table_info('YourTableName');

You’ll need to loop through all tables in the database to check for the column manually since SQLite lacks a global schema query.


Tips:

  • Always replace YourColumnName with the exact column name you’re searching for.
  • Ensure you are connected to the correct database where the search should be performed.
  • Consider adding additional filters, like database or schema name, to narrow the results if necessary.

This approach works across major relational database systems to help you locate tables containing a specific column.

Posted in SQL     

Leave a Reply

Your email address will not be published. Required fields are marked *