Sql Server-實(shí)用技巧-在所有存儲(chǔ)過(guò)程中查詢包含某字符串的執(zhí)行語(yǔ)句

下面直接放代碼:
一、利用sysobjects表和syscomments表進(jìn)行查詢

SELECT Name
FROM sysobjects o, syscomments s
WHERE o.id = s.id
    AND text LIKE '%str%'
    AND o.xtype = 'P'

這里解釋一下
sysobjects :在數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建的每個(gè)對(duì)象(約束、默認(rèn)值、日志、規(guī)則、存儲(chǔ)過(guò)程等)在表中占一行。只有在 tempdb 內(nèi),每個(gè)臨時(shí)對(duì)象才在該表中占一行。
sysobjects 表結(jié)構(gòu):

列名 數(shù)據(jù)類型 描述
name sysname 對(duì)象名,常用列
id int 對(duì)象標(biāo)識(shí)號(hào)
xtype char(2) 對(duì)象類型。常用列。xtype可以是下列對(duì)象類型中的一種:
C = CHECK 約束
D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日志
FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲(chǔ)過(guò)程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復(fù)制篩選存儲(chǔ)過(guò)程
S = 系統(tǒng)表
TF = 表函數(shù)
TR = 觸發(fā)器
U = 用戶表   
UQ = UNIQUE 約束(類型是 K)
V = 視圖
X = 擴(kuò)展存儲(chǔ)過(guò)程

syscomments:包含數(shù)據(jù)庫(kù)中每個(gè)視圖、規(guī)則、默認(rèn)值、觸發(fā)器、CHECK 約束、DEFAULT 約束和存儲(chǔ)過(guò)程的項(xiàng)。text 列包含原始的 SQL 定義語(yǔ)句。
syscomments 表結(jié)構(gòu):

列名 數(shù)據(jù)類型 描述
name sysname 對(duì)象名,常用列
id int 該文本適用的對(duì)象 ID
text nvarchar(4000) SQL 定義語(yǔ)句的實(shí)際文本。
解碼后的表達(dá)式的語(yǔ)義等同于原始文本,但是沒(méi)有語(yǔ)法保證。
例如,已解碼的表達(dá)式中刪除了空格。

返回所有出現(xiàn)過(guò)該字符串的存儲(chǔ)過(guò)程名:

Name
1 Table1
2 Table2
2 Table2

所以這個(gè)查詢的意思是,對(duì)兩個(gè)系統(tǒng)表進(jìn)行聯(lián)查,查找關(guān)鍵條件是SQL 定義語(yǔ)句的實(shí)際文本中包含‘str‘的字符串的、對(duì)象類型為’P‘的對(duì)象。

這在進(jìn)行例如一些提醒消息的str從哪個(gè)存儲(chǔ)過(guò)程拼接出來(lái)的這些情況下會(huì)非常方便,不需求一個(gè)個(gè)打開存儲(chǔ)過(guò)程排查

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容