1. 程式人生 > >(4.27)查看存儲過程中的依賴關系

(4.27)查看存儲過程中的依賴關系

ali src rom ESS 4.2 www. not ase sel

關鍵詞:查看存儲過程中引用的表,查看表在哪些存儲過程中出現過

很多時候需要找到存儲過程所依賴的對象。博客描述了一種在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)查看存儲過程中的依賴關系