# Find Tables by Column Name in SQL Server and PostgreSQL

> Query INFORMATION_SCHEMA.COLUMNS to find all tables containing a column with a specific name in SQL Server, with partial matching and cross-database portability

**URL:** https://sentry.io/answers/how-to-find-all-tables-containing-a-column-with-the-specified-name-in-ms-sql-server/

---

## The Problem

If your SQL Server database has numerous tables, each with many columns, you might have difficulty recalling exactly which tables contain the data you want. How can we search the column names themselves, not the data in the columns, to find which might hold what we're looking for?

## The Solution

In SQL Server it's easy. Run the following query, replacing the database name with yours, and the column name with what you are searching for:

```sql
SELECT
    Table_Name,
    Column_Name
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_CATALOG = 'MyDatabase'
    AND COLUMN_NAME LIKE '%age%'
```

The `%` signs mean SQL will return partial matches of the column name, making your search more powerful.

This query will work in MySQL and PostgreSQL too, with a few small changes. This is why we don't recommend using SQL Server-specific tables, like `sys.columns`, to search for column names.

---

*Source: [sentry.io/answers/how-to-find-all-tables-containing-a-column-with-the-specified-name-in-ms-sql-server/](https://sentry.io/answers/how-to-find-all-tables-containing-a-column-with-the-specified-name-in-ms-sql-server/)*
