📌  相关文章
📜  在 SQL Server 中查找包含特定列名的所有表

📅  最后修改于: 2022-05-13 01:55:49.957000             🧑  作者: Mango

在 SQL Server 中查找包含特定列名的所有表

作为 SQL DBA,我们可能需要编写一个 SQL 查询来查找包含特定列名的所有表,例如。
下面的屏幕截图将显示数据库“ SQL_DBA ”中的表


  • 在 SQL 数据库中查找包含特定列名的所有表:
    在下面的示例中,我们使用 INFORMATION_SCHEMA.COLUMNS 来获取列名类似于 '%Err%' 的表名。

    询问 -

    SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, 
    ORDINAL_POSITION as org_pos, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH as CML
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME like '%Err%'
    ORDER BY TABLE_NAME

    输出 -

    TABLE_CATALOGTABLE_SCHEMATABLE_NAMECOLUMN_NAMEorg_posDATA_TYPECML
    SQL_DBAdbotbl_Errors_StatsErrodate6datetimeNULL
    SQL_DBAdbotbl_Errors_StatsErrorMsg5varchar-1

  • 查找包含特定列名的所有表:
    在本例中,我们使用 sys.column 获取列信息,使用 sys.tables 获取数据库表名。

询问 -

SELECT col.name AS [Column Name], tab.name AS [Table Name]
FROM sys.columns col
INNER JOIN sys.tables tab
ON col.object_id = tab.object_id
WHERE col.name LIKE '%Name%'
ORDER BY [Table Name], [Column Name]

输出 -

Column NameTable Name
DatabaseNametbl_Errors_Stats
SQLInstanceNametbl_Errors_Stats
StatisticsNametbl_Errors_Stats
DatabaseNametbl_QualifiedDBs
DatabaseNametbl_Statistics_Update_Trans
SQLInstanceNametbl_Statistics_Update_Trans
StatisticsNametbl_Statistics_Update_Trans
TableNametbl_Statistics_Update_Trans
DatabaseNametbl_Statistics_Update_Trans_Post
SQLInstanceNametbl_Statistics_Update_Trans_Post
StatisticsNametbl_Statistics_Update_Trans_Post
TableNametbl_Statistics_Update_Trans_Post