查找表中存在的命名列

Sat*_*uru 3 sql

我疯狂地找到一个SQL或T-SQL查询来获取数据库/模式中具有给定名称列的所有表的名称.

请问有人帮我吗?

提前致谢 :)

Dan*_*haw 5

这将找到您在当前/活动数据库中的列.如果您在不同的数据库中,只需INFORMATION_SCHEMA.COLUMNS使用数据库名称作为前缀(例如dbname.INFORMATION_SCHEMA.COLUMNS)

DECLARE @Schema varchar(max)
DECLARE @Column varchar(max)

SET @Schema = NULL
SET @Column = 'primary_id'

SELECT DISTINCT
    TABLE_NAME, *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = @Column
    AND
    (
        @Schema IS NULL
            OR TABLE_SCHEMA = @Schema
    )
Run Code Online (Sandbox Code Playgroud)

这将在SQL Server中工作,并且也应该在其他DBMS中工作,因为INFORMATION_SCHEMA有些标准化(例如,它在MySql中:http://dev.mysql.com/doc/refman/5.0/en/columns-table.html)