Skip to content

Commit cb204c3

Browse files
committed
add param for ObjectType named @type
1 parent 37341d1 commit cb204c3

File tree

1 file changed

+46
-8
lines changed

1 file changed

+46
-8
lines changed

utility/GetObjectDependencies.sql

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
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:
@@ -13,7 +11,11 @@
1311
--======================================================
1412
DROP PROCEDURE IF EXISTS [GetObjectDependencies]
1513
GO
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
1719
AS
1820
BEGIN
1921
SET NOCOUNT ON
@@ -23,7 +25,6 @@ BEGIN
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],
@@ -33,7 +34,42 @@ BEGIN
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
920956
END
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

Comments
 (0)