T-SQL筆記48_實用的腳本part2_如何去得知某table的來源或更新刪除源頭來自哪個sp或trigger_sp_depends




工作中時常遇到的情況就是在跨不同支SP中跟一堆不太熟悉的table混熟
有時還可能遇到SP中再下一層又去call了其他支SP的窘境
層層reference 業務邏輯都寫在Store Procedure情況
不利於debug .... > ~ <|||
但又必須去理解和盤點一些table 的reference情況 資料源頭
各欄位是捨麼定義的時候
就可能需要想一些辦法
沒辦法母公司那裏要幹嘛就多少也要follow



盤點某張table資料insert來源

1
2
3
4
5
SELECT DISTINCT so.name , LOWER(sc.text) 
FROM syscomments sc INNER JOIN sysobjects so on sc.id=so.id
where LOWER(sc.text) like '%insert%'
and LOWER(sc.text) like '%{table名稱}%'
and (LOWER(sc.text) like '%insert {table名稱}%' or LOWER(sc.text) like '%insert into {table名稱}%')


盤點某張table資料delete時機

1
2
3
4
5
SELECT DISTINCT so.name , LOWER(sc.text) 
FROM syscomments sc INNER JOIN sysobjects so on sc.id=so.id
where LOWER(sc.text) like '%delete%'
and LOWER(sc.text) like '%{table名稱}%'
and (LOWER(sc.text) like '%delete {table名稱}%' or LOWER(sc.text) like '%delete from {table名稱}%')

如何去察看某個database objects (可能是table,sp,trigger...)
有依賴或reference到其他哪些database objects (可能是table,sp,trigger...)
會顯示出reference到的table對應欄位

exec sp_depends [table名|sp名|trigger名]

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題