[03/09/2010]

DB2: How do I tell what objects reference a table?
By: Mark Jacobsen

This query will do it for you. Just change the where clause at the bottom...

SELECT Type_X AS "Type"
, RefObj_X AS "Referencing Object"
FROM (
SELECT RTRIM(SYSPROC.PROCSCHEMA)||'.'||RTRIM(SYSPROC.PROCNAME) AS RefObj_X
, RTRIM(SYSPROC.PROCSCHEMA) AS Schema_X
, RTRIM(SYSPROC.PROCNAME) AS Obj_X
, RTRIM(PDEP.BSCHEMA)||'.'||RTRIM(PDEP.BNAME) AS BaseObj_X
, 'Proc' AS Type_X
FROM SYSCAT.PACKAGEDEP PDEP
INNER JOIN SYSIBM.sysdependencies SYSDEP
ON SYSDEP.BSCHEMA = PDEP.BSCHEMA
AND SYSDEP.BNAME = PDEP.PKGNAME
INNER JOIN SYSIBM.sysprocedures SYSPROC
ON SYSDEP.DNAME = SYSPROC.SPECIFICNAME

UNION ALL

SELECT RTRIM(TRIGSCHEMA)||'.'||RTRIM(TRIGNAME) AS RefObj_X
, RTRIM(TRIGSCHEMA) AS Schema_X
, RTRIM(TRIGNAME) AS Obj_X
, RTRIM(BSCHEMA)||'.'||RTRIM(BNAME) AS BaseObj_X
, 'Trigger' AS Type_X
FROM SYSCAT.TRIGDEP

UNION ALL

SELECT RTRIM(VIEWSCHEMA)||'.'||RTRIM(CAST((VIEWNAME) AS CHAR(126))) AS RefObj_X
, RTRIM(VIEWSCHEMA) AS Schema_X
, RTRIM(CAST((VIEWNAME) AS CHAR(126))) AS Obj_X
, RTRIM(BSCHEMA)||'.'||RTRIM(BNAME) AS BaseObj_X
, CASE DTYPE WHEN 'S'
THEN 'SUMMARY TABLE'
ELSE 'View'
END AS Type_X
FROM SYSCAT.VIEWDEP

UNION ALL

SELECT RTRIM(INDSCHEMA)||'.'||RTRIM(INDNAME) AS RefObj_X
, RTRIM(INDSCHEMA) AS Schema_X
, RTRIM(INDNAME) AS Obj_X
, RTRIM(TABSCHEMA)||'.'||RTRIM(TABNAME) AS BaseObj_X
, 'Index' AS Type_X
FROM SYSCAT.INDEXES

UNION ALL

SELECT RTRIM(TABSCHEMA)||'.'||RTRIM(TABNAME) AS RefObj_X
, RTRIM(TABSCHEMA) AS Schema_X
, RTRIM(TABNAME) AS Obj_X
, RTRIM(BASE_TABSCHEMA)||'.'||RTRIM(BASE_TABNAME) AS BaseObj_X
, 'Alias' AS Type_X
FROM SYSCAT.TABLES
WHERE TYPE = 'A'

UNION ALL

SELECT DISTINCT RTRIM(CAST(RTRIM(TABSCHEMA) AS VARCHAR(126))) || '.' || RTRIM(TABNAME) AS RefObj_X
, RTRIM(CAST(RTRIM(TABSCHEMA) AS VARCHAR(126))) AS Schema_X
, RTRIM(TABNAME) AS Obj_X
, RTRIM(REFTABSCHEMA)||'.'||RTRIM(REFTABNAME) AS BaseObj_X
, 'Table' AS Type_X
FROM SYSCAT.REFERENCES
) AS RefTbl
WHERE BaseObj_X = 'XX.MY_TABLE'
ORDER BY
Type_X
, RefObj_X;

===================
Mark Jacobsen: I hope you have found this article or tip helpful. If so, please consider making a donation. 100% of all proceeds will be directed to charity: water. Contact me at MarkJacobsen.net or @MarkJacobsen

 

Like this Article?
Please Share it and Subscribe


Thanks for stopping by. Please be sure to visit some of my sites for your communication needs: Toll Free Virtual PBX, Real Estate Call Capture, Hosted PBX, and Virtual Fax.

All News Articles...

Post Comment
First Name
Last Name (Not published)
Email (Not published)
2 + 5 =

Subscribe for Free
Subscribe via Email
Subscribe with Google Reader
Subscribe via RSS

Share this Article
Share on Facebook Share on Twitter Share on Delicious Share on Google Buzz Share on StumbleUpon

Recent Posts

DB2: How to tell who has DB Admin Privileges

minimalism


Last Weeks Most Popular

DB2: Check tablespace status (Check for Load Pending state)

gSyncit Rocks

DB2: How do I concatenate multiple columns in a select statement to return a single column?

minimalism

Windows 7 Won't Connect to Public WiFi


Subscribe via Email
Email

Connect on LinkedIn

Follow me on Twitter




Copyright © 2012 Communication Freedom, LLC. All rights reserved
Save to delicious  RSS feed     
Contact Us | About Us | Privacy Policy  
Order easily with Visa, Mastercard, American Express, or Discover Card