从列名中查找数据库的表/视图

问题描述 投票:0回答:3

我被要求从SQL Server数据库中提取信息以更新报告。我收到了几个月前的报告版本;而且没有与报告相关的文档。

现有的数据提取已经列出了列名,而且我一直在按数据库搜索SQL Server数据库,逐个表查看,查看查找源,无济于事。

有很多表和视图,所以我想知道我是否可以根据它包含的列的名称搜索表/视图。我正在运行SQL Server Management Studio。

sql sql-server
3个回答
1
投票

您可以从information_schema视图中获取大量信息:

SELECT  *
FROM    INFORMATION_SCHEMA.TABLES


SELECT  *
FROM    INFORMATION_SCHEMA.COLUMNS

2
投票

我会走这条路:

1)找到包含您的列的表格:

SELECT c.name AS column_, t.name AS table_ 
FROM sys.tables t 
INNER JOIN sys.columns c
    ON t.object_id = c.object_id
WHERE c.name LIKE '%your_column_name_here%'

2)导航到对象资源管理器中包含该字段的表,右键单击,然后选择“查看依赖项”。这将列出引用该表的所有对象。然后,您可以找到可能产生数据集的任何过程/视图/等。

SQL Server也有DMV可以帮助:

SELECT * 
FROM sys.dm_sql_referencing_entities('yourschema.yourtable', 'OBJECT')

0
投票

使用InformationSchema视图

SELECT  c.TABLE_NAME,
    c.COLUMN_NAME
FROM    INFORMATION_SCHEMA.COLUMNS c
WHERE   C.COLUMN_NAME IN('ColumnName1', 'ColumnName2')
© www.soinside.com 2019 - 2024. All rights reserved.