@@ -2,152 +2,152 @@ IF OBJECT_ID('dbo.sp_Depends', 'P') IS NULL
22EXECUTE (' CREATE PROCEDURE dbo.sp_Depends AS SELECT 1' );
33GO
44
5- ALTER PROCEDURE dbo .sp_depends_v2 (
6- @objname AS SYSNAME = N ' '
7- ,@objclassAS NVARCHAR (60 ) = N ' OBJECT'
5+ ALTER PROCEDURE dbo .sp_Depends (
6+ @objectName SYSNAME = N ' '
7+ , @objectClass NVARCHAR (60 ) = N ' OBJECT'
8+ , @debug BIT = 0
89)
910AS
1011/*
11- Program : dbo.sp_depends_v2
12- Developer : Manjuke Fernando
13- Date : 06.07.2018
12+ Program: dbo.sp_depends_v2
13+ Developer : Manjuke Fernando
14+ Date : 06.07.2018
1415*/
1516BEGIN
17+ SET NOCOUNT ON ;
1618
17- SET NOCOUNT ON ;
18-
19- DECLARE
20- @ProcessTagAS VARCHAR (512 ) = ' __Undefined_Message__'
21- ,@ProccessNameAS VARCHAR (256 ) = OBJECT_NAME (@@PROCID )
22- ,@ErrorMessageAS VARCHAR (4000 ) = ' '
23- ,@Sql AS NVARCHAR (MAX ) = N ' '
19+ DECLARE @Sql AS NVARCHAR (MAX ) = N ' ' ;
2420
21+ IF OBJECT_ID (@objectName) IS NULL
22+ THROW 50001 , ' Object with @objectName is not exists in current database!' , 1
23+ ELSE
24+ IF @debug = 1 PRINT (' -- OBJECT_ID = ' + CAST (OBJECT_ID (@objectName) AS NVARCHAR (50 )));
2525
26- BEGIN TRY
26+ BEGIN TRY
27+ IF @debug = 1
28+ SET @Sql = N ' DECLARE @RefObjectName SYSNAME = N'' ' + @objectName + ' '' ;' + CHAR (13 ) +
29+ N ' DECLARE @objectClass NVARCHAR(60) = N'' ' + @objectClass + ' '' ;' + CHAR (13 );
2730
28- SET @Sql = N'
29- SELECT
30- CONCAT(sch.[name],'' .'' ,Obj.[name]) AS [name]
31- ,(CASE Obj.type
32- WHEN '' C'' THEN '' CHECK constraint''
33- WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
34- WHEN '' F'' THEN '' FOREIGN KEY constraint''
35- WHEN '' PK'' THEN '' PRIMARY KEY constraint''
36- WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
37- WHEN '' TA'' THEN '' Assembly (CLR-integration) trigger''
38- WHEN '' TR'' THEN '' SQL trigger''
39- WHEN '' UQ'' THEN '' UNIQUE constraint''
40- WHEN '' AF'' THEN '' Aggregate function (CLR)''
41- WHEN '' C'' THEN '' CHECK constraint''
42- WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
43- WHEN '' F'' THEN '' FOREIGN KEY constraint''
44- WHEN '' FN'' THEN '' SQL scalar function''
45- WHEN '' FS'' THEN '' Assembly (CLR) scalar-function''
46- WHEN '' FT'' THEN '' Assembly (CLR) table-valued function''
47- WHEN '' IF'' THEN '' SQL inline table-valued function''
48- WHEN '' IT'' THEN '' Internal table''
49- WHEN '' P'' THEN '' SQL Stored Procedure''
50- WHEN '' PC'' THEN '' Assembly (CLR) stored-procedure''
51- WHEN '' PG'' THEN '' Plan guide''
52- WHEN '' PK'' THEN '' PRIMARY KEY constraint''
53- WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
54- WHEN '' RF'' THEN '' Replication-filter-procedure''
55- WHEN '' S'' THEN '' System base TABLE''
56- WHEN '' SN'' THEN '' Synonym''
57- WHEN '' SO'' THEN '' Sequence OBJECT''
58- WHEN '' U'' THEN '' Table (user-defined)''
59- WHEN '' V'' THEN '' VIEW''
60- WHEN '' SQ'' THEN '' Service queue''
61- WHEN '' TA'' THEN '' Assembly (CLR) DML trigger''
62- WHEN '' TF'' THEN '' SQL table-valued-function''
63- WHEN '' TR'' THEN '' SQL DML trigger''
64- WHEN '' TT'' THEN '' Table type''
65- WHEN '' UQ'' THEN '' UNIQUE CONSTRAINT''
66- WHEN '' X'' THEN '' Extended stored procedure''
67- ELSE '' Undefined''
68- END) AS [type]
69- ,Obj.create_date
70- ,Obj.modify_date
71- ,src.referenced_minor_name AS [column]
72- ,IIF(src.is_selected = 1,'' yes'' ,'' no'' ) AS is_selected
73- ,IIF(src.is_updated = 1,'' yes'' ,'' no'' ) AS is_updated
74- ,IIF(src.is_select_all = 1,'' yes'' ,'' no'' ) AS is_select_all
75- ,IIF(src.is_insert_all = 1,'' yes'' ,'' no'' ) AS is_insert_all
76- FROM
77- sys.dm_sql_referenced_entities (@RefObjectName,@objclass) AS src
78- JOIN sys.objects AS Obj
79- ON src.referenced_id = Obj.[object_id]
80- JOIN sys.schemas AS Sch
81- ON Sch.[schema_id] = Obj.[schema_id]
82- -- WHERE 1=1
83- -- AND src.referenced_minor_name IS NOT NULL
84- ;
85-
86-
87- SELECT
88- CONCAT(Src.referencing_schema_name,'' .'' ,Src.referencing_entity_name) AS [name]
89- ,(CASE Obj.type
90- WHEN '' C'' THEN '' CHECK constraint''
91- WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
92- WHEN '' F'' THEN '' FOREIGN KEY constraint''
93- WHEN '' PK'' THEN '' PRIMARY KEY constraint''
94- WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
95- WHEN '' TA'' THEN '' Assembly (CLR-integration) trigger''
96- WHEN '' TR'' THEN '' SQL trigger''
97- WHEN '' UQ'' THEN '' UNIQUE constraint''
98- WHEN '' AF'' THEN '' Aggregate function (CLR)''
99- WHEN '' C'' THEN '' CHECK constraint''
100- WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
101- WHEN '' F'' THEN '' FOREIGN KEY constraint''
102- WHEN '' FN'' THEN '' SQL scalar function''
103- WHEN '' FS'' THEN '' Assembly (CLR) scalar-function''
104- WHEN '' FT'' THEN '' Assembly (CLR) table-valued function''
105- WHEN '' IF'' THEN '' SQL inline table-valued function''
106- WHEN '' IT'' THEN '' Internal table''
107- WHEN '' P'' THEN '' SQL Stored Procedure''
108- WHEN '' PC'' THEN '' Assembly (CLR) stored-procedure''
109- WHEN '' PG'' THEN '' Plan guide''
110- WHEN '' PK'' THEN '' PRIMARY KEY constraint''
111- WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
112- WHEN '' RF'' THEN '' Replication-filter-procedure''
113- WHEN '' S'' THEN '' System base TABLE''
114- WHEN '' SN'' THEN '' Synonym''
115- WHEN '' SO'' THEN '' Sequence OBJECT''
116- WHEN '' U'' THEN '' Table (user-defined)''
117- WHEN '' V'' THEN '' VIEW''
118- WHEN '' SQ'' THEN '' Service queue''
119- WHEN '' TA'' THEN '' Assembly (CLR) DML trigger''
120- WHEN '' TF'' THEN '' SQL table-valued-function''
121- WHEN '' TR'' THEN '' SQL DML trigger''
122- WHEN '' TT'' THEN '' Table type''
123- WHEN '' UQ'' THEN '' UNIQUE CONSTRAINT''
124- WHEN '' X'' THEN '' Extended stored procedure''
125- ELSE '' Undefined''
126- END) AS [type]
127- ,Obj.create_date
128- ,Obj.modify_date
129- FROM
130- sys.dm_sql_referencing_entities (@RefObjectName,@objclass) AS Src
131- JOIN sys.objects AS Obj
132- ON Obj.[object_id] = Src.referencing_id;
133- '
134- EXEC sys .sp_executesql
135- @Sql
136- ,N ' @RefObjectName AS NVARCHAR(517), @objclass AS NVARCHAR(60)'
137- ,@RefObjectName = @objname
138- ,@objclass = @objclass;
139-
140- END TRY
31+ SET @Sql = @Sql +
32+ N ' SELECT CONCAT(sch.[name], '' .'' , Obj.[name]) AS [name]
33+ ,(CASE Obj.type
34+ WHEN '' C'' THEN '' CHECK constraint''
35+ WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
36+ WHEN '' F'' THEN '' FOREIGN KEY constraint''
37+ WHEN '' PK'' THEN '' PRIMARY KEY constraint''
38+ WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
39+ WHEN '' TA'' THEN '' Assembly (CLR-integration) trigger''
40+ WHEN '' TR'' THEN '' SQL trigger''
41+ WHEN '' UQ'' THEN '' UNIQUE constraint''
42+ WHEN '' AF'' THEN '' Aggregate function (CLR)''
43+ WHEN '' C'' THEN '' CHECK constraint''
44+ WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
45+ WHEN '' F'' THEN '' FOREIGN KEY constraint''
46+ WHEN '' FN'' THEN '' SQL scalar function''
47+ WHEN '' FS'' THEN '' Assembly (CLR) scalar-function''
48+ WHEN '' FT'' THEN '' Assembly (CLR) table-valued function''
49+ WHEN '' IF'' THEN '' SQL inline table-valued function''
50+ WHEN '' IT'' THEN '' Internal table''
51+ WHEN '' P'' THEN '' SQL Stored Procedure''
52+ WHEN '' PC'' THEN '' Assembly (CLR) stored-procedure''
53+ WHEN '' PG'' THEN '' Plan guide''
54+ WHEN '' PK'' THEN '' PRIMARY KEY constraint''
55+ WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
56+ WHEN '' RF'' THEN '' Replication-filter-procedure''
57+ WHEN '' S'' THEN '' System base TABLE''
58+ WHEN '' SN'' THEN '' Synonym''
59+ WHEN '' SO'' THEN '' Sequence OBJECT''
60+ WHEN '' U'' THEN '' Table (user-defined)''
61+ WHEN '' V'' THEN '' VIEW''
62+ WHEN '' SQ'' THEN '' Service queue''
63+ WHEN '' TA'' THEN '' Assembly (CLR) DML trigger''
64+ WHEN '' TF'' THEN '' SQL table-valued-function''
65+ WHEN '' TR'' THEN '' SQL DML trigger''
66+ WHEN '' TT'' THEN '' Table type''
67+ WHEN '' UQ'' THEN '' UNIQUE CONSTRAINT''
68+ WHEN '' X'' THEN '' Extended stored procedure''
69+ ELSE '' Undefined''
70+ END) AS [type]
71+ , Obj.create_date
72+ , Obj.modify_date
73+ , src.referenced_minor_name AS [column]
74+ , IIF(src.is_selected = 1, '' yes'' , '' no'' ) AS is_selected
75+ , IIF(src.is_updated = 1, '' yes'' , '' no'' ) AS is_updated
76+ , IIF(src.is_select_all = 1, '' yes'' , '' no'' ) AS is_select_all
77+ --, IIF(src.is_insert_all = 1, '' yes'' , '' no'' ) AS is_insert_all
78+ FROM
79+ sys.dm_sql_referenced_entities (@RefObjectName, @objectClass) AS src
80+ JOIN sys.objects AS Obj ON src.referenced_id = Obj.[object_id]
81+ JOIN sys.schemas AS sch ON sch.[schema_id] = Obj.[schema_id]
82+ -- WHERE 1=1
83+ -- AND src.referenced_minor_name IS NOT NULL
84+ ;
14185
142- BEGIN CATCH
143- PRINT ' Error: ' + CONVERT (varchar (50 ), ERROR_NUMBER ()) +
86+ SELECT CONCAT(Src.referencing_schema_name, '' .'' , Src.referencing_entity_name) AS [name]
87+ , (CASE Obj.type
88+ WHEN '' C'' THEN '' CHECK constraint''
89+ WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
90+ WHEN '' F'' THEN '' FOREIGN KEY constraint''
91+ WHEN '' PK'' THEN '' PRIMARY KEY constraint''
92+ WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
93+ WHEN '' TA'' THEN '' Assembly (CLR-integration) trigger''
94+ WHEN '' TR'' THEN '' SQL trigger''
95+ WHEN '' UQ'' THEN '' UNIQUE constraint''
96+ WHEN '' AF'' THEN '' Aggregate function (CLR)''
97+ WHEN '' C'' THEN '' CHECK constraint''
98+ WHEN '' D'' THEN '' DEFAULT (constraint or stand-alone)''
99+ WHEN '' F'' THEN '' FOREIGN KEY constraint''
100+ WHEN '' FN'' THEN '' SQL scalar function''
101+ WHEN '' FS'' THEN '' Assembly (CLR) scalar-function''
102+ WHEN '' FT'' THEN '' Assembly (CLR) table-valued function''
103+ WHEN '' IF'' THEN '' SQL inline table-valued function''
104+ WHEN '' IT'' THEN '' Internal table''
105+ WHEN '' P'' THEN '' SQL Stored Procedure''
106+ WHEN '' PC'' THEN '' Assembly (CLR) stored-procedure''
107+ WHEN '' PG'' THEN '' Plan guide''
108+ WHEN '' PK'' THEN '' PRIMARY KEY constraint''
109+ WHEN '' R'' THEN '' Rule (old-style, stand-alone)''
110+ WHEN '' RF'' THEN '' Replication-filter-procedure''
111+ WHEN '' S'' THEN '' System base TABLE''
112+ WHEN '' SN'' THEN '' Synonym''
113+ WHEN '' SO'' THEN '' Sequence OBJECT''
114+ WHEN '' U'' THEN '' Table (user-defined)''
115+ WHEN '' V'' THEN '' VIEW''
116+ WHEN '' SQ'' THEN '' Service queue''
117+ WHEN '' TA'' THEN '' Assembly (CLR) DML trigger''
118+ WHEN '' TF'' THEN '' SQL table-valued-function''
119+ WHEN '' TR'' THEN '' SQL DML trigger''
120+ WHEN '' TT'' THEN '' Table type''
121+ WHEN '' UQ'' THEN '' UNIQUE CONSTRAINT''
122+ WHEN '' X'' THEN '' Extended stored procedure''
123+ ELSE '' Undefined''
124+ END) AS [type]
125+ , Obj.create_date
126+ , Obj.modify_date
127+ FROM sys.dm_sql_referencing_entities (@RefObjectName, @objectClass) AS Src
128+ INNER JOIN sys.objects AS Obj ON Obj.[object_id] = Src.referencing_id;' ;
129+
130+ IF @debug = 1
131+ BEGIN
132+ PRINT (SUBSTRING (@Sql, 1 , 4000 ));
133+ PRINT (SUBSTRING (@Sql, 4001 , 8000 ));
134+ END
135+ ELSE
136+ EXEC sp_executesql @Sql
137+ , N ' @RefObjectName AS SYSNAME, @objectClass AS NVARCHAR(60)'
138+ , @RefObjectName = @objectName
139+ , @objectClass = @objectClass;
140+
141+ END TRY
142+
143+ BEGIN CATCH
144+ PRINT ' Error: ' + CONVERT (varchar (50 ), ERROR_NUMBER ()) +
144145 ' , Severity: ' + CONVERT (varchar (5 ), ERROR_SEVERITY ()) +
145146 ' , State: ' + CONVERT (varchar (5 ), ERROR_STATE ()) +
146147 ' , Procedure: ' + ISNULL (ERROR_PROCEDURE (), ' -' ) +
147148 ' , Line: ' + CONVERT (varchar (5 ), ERROR_LINE ()) +
148149 ' , User name: ' + CONVERT (sysname , CURRENT_USER );
149-
150- THROW 50000 , @ErrorMessage, 1 ;
151- END CATCH
150+ END CATCH
152151
153152END ;
153+ GO
0 commit comments