Skip to content

Commit 146e46f

Browse files
authored
Update sp_Depends.sql
1 parent 1cb8bd1 commit 146e46f

File tree

1 file changed

+132
-132
lines changed

1 file changed

+132
-132
lines changed

Stored_Procedure/sp_Depends.sql

Lines changed: 132 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -2,152 +2,152 @@ IF OBJECT_ID('dbo.sp_Depends', 'P') IS NULL
22
EXECUTE ('CREATE PROCEDURE dbo.sp_Depends AS SELECT 1');
33
GO
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
)
910
AS
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
*/
1516
BEGIN
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

153152
END;
153+
GO

0 commit comments

Comments
 (0)