[MS SQL]查詢含特定文字的Stored Procedure或View

[MS SQL]查詢含特定文字的Stored Procedure或view

有時候寫很多Stored Procedure(以下簡稱SP)及View後改了Table名稱,常常不知道要同步修改哪些SP及View

可用以下語法抓出內含特定文字的SP或View

SELECT DISTINCT o.name, c.* FROM syscomments c
INNER JOIN sysobjects o ON c.id=o.id
WHERE (o.xtype = 'P'           --查SP
OR o.xtype = 'V')              --查View
And (o.name LIKE '%特定文字%'  --查SP或View名稱
OR c.text LIKE '%特定文字%')   --查SP或View內含文字

輸出的結果如下,text欄位內就是SP及View中的文字,可以發現內含文字較多時,會以多筆資料儲存,並以colid排序

以上的查詢還可以查很多東西,詳情可到Microsoft網站查詢。

參考資料

https://docs.microsoft.com/zh-tw/sql/relational-databases/system-compatibility-views/sys-sysobjects-transact-sql?view=sql-server-2017