(4.27)查看存储过程中的依赖关系
Posted gered
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(4.27)查看存储过程中的依赖关系相关的知识,希望对你有一定的参考价值。
关键词:查看存储过程中引用的表,查看表在哪些存储过程中出现过
很多时候需要找到存储过程所依赖的对象。博客描述了一种在SQL服务器中查找存储过程依赖关系的方法。
以下查询创建存储过程。
1
2
3
4
5
6
7
8
9
10
11
|
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过程所依赖的所有对象。
1
2
3
4
5
6
7
8
9
10
11
|
-- 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‘
以上是关于(4.27)查看存储过程中的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章
SQL SERVER如何查看一个表被哪些存储过程用到?用哪个系统存储过程?
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段