22-- Usage: GetObjectDependencies
33-- Notes:
44-- Parameters:
5- -- 1. CREATE TABLE #tObjectInfo (objid int NOT NULL, objtype smallint NOT NULL)
6- -- contains source objects
7- -- 2. @FindRef defines ordering
5+ -- @FindRef defines ordering
86-- 1 order for drop
97-- 0 order for script
108-- History:
1311-- ======================================================
1412DROP PROCEDURE IF EXISTS [GetObjectDependencies]
1513GO
16- CREATE PROCEDURE [dbo].[GetObjectDependencies] @ObjectName varchar (255 ), @ObjectSchema varchar (255 ) = ' dbo' , @FindRef BIT = 0 , @FilterCurrentDBOnly BIT = 1
14+ CREATE PROCEDURE [dbo].[GetObjectDependencies] @ObjectName varchar (255 ),
15+ @ObjectSchema varchar (255 ) = ' dbo' ,
16+ @RefType INT = 1 ,
17+ @FindRef BIT = 0 ,
18+ @FilterCurrentDBOnly BIT = 1
1719AS
1820BEGIN
1921 SET NOCOUNT ON
2325
2426 INSERT
2527 INTO #tObjectInfo
26- -- For stored procedure
2728 SELECT sp .object_id AS [ID],
2829 sp .name AS [Name],
2930 SCHEMA_NAME (sp .schema_id ) AS [Schema],
3334 WHERE (sp .type = ' P' OR sp .type = ' RF' OR sp .type = ' PC' )
3435 AND sp .name = @ObjectName
3536 AND SCHEMA_NAME (sp .schema_id ) = @ObjectSchema
36- -- For xyz
37+ AND @RefType = 4 -- Stored Procedure
38+
39+ UNION ALL
40+ SELECT udf .object_id AS [ID],
41+ udf .name AS [Name],
42+ SCHEMA_NAME (udf .schema_id ) AS [Schema],
43+ db_name (),
44+ 0 as objtype
45+ FROM sys .all_objects AS udf
46+ WHERE udf .type in (' TF' , ' FN' , ' IF' , ' FS' , ' FT' )
47+ AND udf .name = @ObjectName
48+ AND SCHEMA_NAME (udf .schema_id ) = @ObjectSchema
49+ AND @RefType = 0 -- Function
50+
51+ UNION ALL
52+ SELECT tbl .object_id AS [ID],
53+ tbl .name AS [Name],
54+ SCHEMA_NAME (tbl .schema_id ) AS [Schema],
55+ db_name (),
56+ 3 as objtype
57+ FROM sys .tables AS tbl
58+ WHERE tbl .name = @ObjectName
59+ AND SCHEMA_NAME (tbl .schema_id ) = @ObjectSchema
60+ AND @RefType = 3 -- Table
61+
62+ UNION ALL
63+ SELECT v .object_id AS [ID],
64+ v .name AS [Name],
65+ SCHEMA_NAME (v .schema_id ) AS [Schema],
66+ db_name (),
67+ 2
68+ FROM sys .all_views AS v
69+ WHERE v .type = ' V'
70+ AND v .name = @ObjectName
71+ AND SCHEMA_NAME (v .schema_id ) = @ObjectSchema
72+ AND @RefType = 2 -- View
3773
3874 DECLARE @u int
3975 DECLARE @udf int
@@ -919,6 +955,8 @@ BEGIN
919955 RETURN
920956END
921957/*
922- EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_ReloadILI_FromERPPRD'
923- EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_ReloadILI_FromERPPRD', @FindRef=1
958+ EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_ReloadILI_FromERPPRD', @RefType=4
959+ EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_GetExchangeRate', @RefType=0
960+ EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_ILI', @RefType=3
961+ EXEC [dbo].[GetObjectDependencies] @ObjectName='INV_ILIV', @RefType=2
924962*/
0 commit comments