Wednesday, January 15, 2014

Query นี้สำหรับหาว่า Stored Procedure / Function นั้นใช้งาน Table ไหนอยู่บ้าง

[TSQL Tip] 

Query นี้สำหรับหาว่า Stored Procedure / Function นั้นใช้งาน Table ไหนอยู่บ้าง 
หรือ Table นี้ถูกใช้งานโดย SP/Function อะไรที่ไหน
ในกรณีที่ต้องการจะแก้ไข Table ลบ column แล้วไม่แน่ใจว่าถูกใช้งานจากที่ใด


SELECT top (100) PERCENT
OBJECT_NAME(s.object_id) as SPs,
OBJECT_NAME(s.referenced_major_id) as Tables
FROM sys.sql_dependencies  AS s
INNER JOIN sys.all_sql_modules AS a ON a.object_id = s.object_id
where OBJECT_NAME(s.object_id) like 'SPCUS_AdmissionToDay' --ดูว่า SP/Function นี้มีใช้งาน table อะไรบ้าง
-- WHERE OBJECT_NAME(s.referenced_major_id) like '%Products%' -- ดูว่า Table นี้ใช้งานโดย SP/Fuction ไหนบ้าง
GROUP BY OBJECT_NAME(s.object_id), OBJECT_NAME(s.referenced_major_id)
ORDER BY SPs, Tables