我被要求从SQL Server数据库中提取信息以更新报告。我收到了几个月前的报告版本;而且没有与报告相关的文档。
现有的数据提取已经列出了列名,而且我一直在按数据库搜索SQL Server数据库,逐个表查看,查看查找源,无济于事。
有很多表和视图,所以我想知道我是否可以根据它包含的列的名称搜索表/视图。我正在运行SQL Server Management Studio。
您可以从information_schema视图中获取大量信息:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
我会走这条路:
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')
使用InformationSchema视图
SELECT c.TABLE_NAME,
c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE C.COLUMN_NAME IN('ColumnName1', 'ColumnName2')