📅  最后修改于: 2023-12-03 15:05:17.983000             🧑  作者: Mango
在 SQL Server 中,我们可以使用以下 SQL 查询语句来查找所有使用表的地方:
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc,
referencing_database_name, referencing_schema_id, referencing_type_desc, referenced_schema_name,
referenced_entity_name, referenced_id, referenced_class_desc, referenced_schema_id,
referenced_type_desc
FROM sys.dm_sql_referencing_entities ('dbo.TableName', 'OBJECT');
以上查询语句使用了 sys.dm_sql_referencing_entities 系统函数,该函数用于检查引用某个对象的所有对象。
以上查询结果会返回所有使用表 dbo.TableName 的对象列表。
如果你想要查询所有数据库中使用一个表的地方,可以使用以下 SQL 查询语句:
SELECT referencing_database_name, referencing_schema_name, referencing_entity_name, referenced_database_name,
referenced_schema_name, referenced_entity_name
FROM sys.dm_sql_referencing_entities('dbo.TableName', 'OBJECT')
WHERE referencing_database_name != referenced_database_name;
以上查询语句将过滤掉那些在同一个数据库中引用该表的对象,仅返回在不同数据库中引用该表的对象。