合 MSSQL中查询依赖关系
Tags: MSSQLSQL Server整理自官网依赖关系
查看表的依赖项
使用 SQL Server Management Studio
查看表依赖的对象
- 在 “对象资源管理器”中,展开 “数据库”,再展开其中的某个数据库,然后展开 “表”。
- 右键单击某个表,然后选择“查看依赖项”。
- 在“对象依赖关系<对象名称>”对话框中,选择“依赖于 <对象名称> 的对象”或“<对象名称> 依赖的对象”。
- 在 “依赖关系” 网格中选择一个对象。 对象类型(如“触发器”或“存储过程”)显示在“类型”框中。
使用 Transact-SQL
查看依赖于表的对象
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
SQL
12345USE AdventureWorks2022;GOSELECT * FROM sys.sql_expression_dependenciesWHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription');GO
查看表的依赖项
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
下面的示例返回依赖于表
Production.Product
的对象。 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。SQL
12345USE AdventureWorks2022;GOSELECT * FROM sys.sql_expression_dependenciesWHERE referenced_id = OBJECT_ID(N'Production.Product');GO
返回跨数据库依赖关系
下面的示例返回所有跨数据库的依赖关系。 此示例首先创建数据库 db1
以及两个引用数据库 db2
和 db3
中的表的存储过程。 然后,对 sys.sql_expression_dependencies
表进行查询,以报告这两个过程和表之间的跨数据库依赖关系。 请注意,在被引用实体 referenced_schema_name
的 t3
列中返回 NULL,原因是过程定义中没有为该实体指定架构名称。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE DATABASE db1; GO USE db1; GO CREATE PROCEDURE p1 AS SELECT * FROM db2.s1.t1; GO CREATE PROCEDURE p2 AS UPDATE db3..t3 SET c1 = c1 + 1; GO SELECT OBJECT_NAME (referencing_id),referenced_database_name, referenced_schema_name, referenced_entity_name FROM sys.sql_expression_dependencies WHERE referenced_database_name IS NOT NULL; GO USE master; GO DROP DATABASE db1; GO |