(4.27)查看存储过程中的依赖关系
关键词:查看存储过程中引用的表,查看表在哪些存储过程中出现过
很多时候需要找到存储过程所依赖的对象。博客描述了一种在SQL服务器中查找存储过程依赖关系的方法。
以下查询创建存储过程。
1.创建存储过程查询依赖
IF object_id('usp_getpersonaddress') is not null drop proc usp_getpersonaddress GO Create procedure usp_getpersonaddress AS SELECT pp.BusinessEntityID,pp.FirstName + ' ' + pp.LastName, pa.AddressLine1,pa.City FROM Person.Person pp join Person.Address pa ON pp.BusinessEntityID = pa.AddressID GO
以下查询列出了usp_getpersonaddress过程所依赖的所有对象。
-- find dependency SELECT referencing_id,OBJECT_SCHEMA_NAME ( referencing_id ) + '.' + OBJECT_NAME(referencing_id) AS referencing_object_name, obj.type_desc AS referencing_object_type, referenced_schema_name + '.' + referenced_entity_name As referenced_object_name FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS obj ON sed.referencing_id = obj.object_id WHERE referencing_id =OBJECT_ID('usp_getpersonaddress') GO
上述查询的输出如下所示。
2、查看与表相关的存储过程
SELECT DISTINCT objects.name, objects.type, comments.text proc_defintion FROM syscomments comments INNER JOIN sys.objects objects ON comments.id=objects.object_id WHERE comments.text LIKE '%Person.Address%' AND objects.type='P'
3、查看与列相关的存储过程
-- find stored procedure related to a column in database SELECT DISTINCT objects.name, objects.type, comments.text proc_defintion FROM syscomments comments INNER JOIN sys.objects objects ON comments.id=objects.object_id WHERE comments.text LIKE '%AddressID%' AND objects.type='P'
分类:
MSSQL dba开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南