環境與版本
作業系統:Window10 64x 版本:2004
資料庫產品版本:Microsoft SQL Server Developer (64-bit) v18.4
資料庫版本編號:15.0.2070.41(SQL SEVER2019)
在維護舊系統的時候,面對海量前工程師遺留下來的產物,好的可能有好的交付文件可以查看了解,壞的可能甚麼都沒有只能透過線索一一搜尋查看,這裡就分享如何在資料庫中找某個Keyword在哪些物件中出現! 也可以找尋Table名稱在哪個物件中出現!
找某個關鍵字Keyword在哪些物件中 sys.sql_modules
-- ============================================= -- Author: Steven玄 -- ALTER date: 20210120 -- Description: 找某個Keyword在哪個物件中出現! -- ============================================= SELECT distinct object_name(object_id) as [物件名稱], definition as [物件內資訊] FROM sys.sql_modules WHERE definition LIKE '%關鍵字串%';
※FROM 後可以使用sys.sql_modules 或是 sys.all_sql_modules
找某個關鍵字Keyword在哪些預存程序中 sys.procedures
只要找預存程序的話可以使用sys.procedures
-- ============================================= -- Author: Steven玄 -- ALTER date: 20210120 -- Description: 找某個Keyword在哪個Stored Proceduce中出現! -- ============================================= Select distinct object_name(object_id) as [物件名稱], object_definition(object_id) as [物件內資訊] from sys.procedures Where object_definition(object_id) like '%關鍵字串%';
參考或引用資料:
如何表列出預存程序(Stored Procesure)中用到了哪一些資料表呢?:https://dotblogs.com.tw/rockchang/2015/10/30/153753
[SQL]SQL Server中找某個Keyword在那個物件中出現! (Part 2):https://dotblogs.com.tw/rainmaker/2012/07/16/73405
sys.sql_modules (Transact-SQL):https://dotblogs.com.tw/rainmaker/2012/07/16/73405