Table name  : sp_text
Column name : obj_Text

在此列中,所有存储过程都存储为文本。

我需要检索所有在 raiserror 中有 raiserror %d 的存储过程。

例如,一个 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%'

最佳答案

使用系统 View sys.sql_modules :简单得多。你可以用 LIKE 中的括号转义 %

SELECT OBJECT_NAME(object_id), * FROM sys.sql_modules
WHERE definition LIKE '%raiserror%[%]d%'

您也不能选择或筛选存储过程。

关于sql-server - 在 Sql server 2008 中使用 like 子句选择查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4643928/

10-12 03:41