Table name : sp_text
Column name : obj_Text
在此列中,所有存储过程都存储为文本。
我需要检索raiserror
中raiserror
和%d 的所有存储过程。
例如,A SP中包含以下raiserror
。
raiserror('quantity adjustment is not allowed in row no %d', 16, 1, @fprowno)
我尝试了以下查询但无法得出结果。
select *
from sp_text_ismail
where obj_Text like '%raiserror%'
and obj_Text like '%/%d%'
答案 0 :(得分:3)
使用系统视图sys.sql_modules:更简单。你可以在LIKE
中用括号转义%SELECT OBJECT_NAME(object_id), * FROM sys.sql_modules
WHERE definition LIKE '%raiserror%[%]d%'
您也无法选择或过滤存储过程。
答案 1 :(得分:-1)
您必须在查询中使用转义字符'\',并在最后提及它。您使用了正斜杠而不是向后斜杠。实际上,您可以将任何字符用作转义字符,但最后必须提及。
尝试此查询
select * from sp_text_ismail where obj_Text like '%raiserror%' and obj_Text like '%\%d%' ESCAPE '\'