Sql server 在SQLServer2008中使用like子句选择查询
在此列中,所有存储过程都存储为文本 我需要检索在Sql server 在SQLServer2008中使用like子句选择查询,sql-server,Sql Server,在此列中,所有存储过程都存储为文本 我需要检索在raiserror中具有raiserror和%d的所有存储过程 例如,SP中包含以下raiserror Table name : sp_text Column name : obj_Text 我尝试了下面的查询,但没有得到结果 raiserror('quantity adjustment is not allowed in row no %d', 16, 1, @fprowno) 使用系统视图:简单得多。你可以用括号来转义% sele
raiserror
中具有raiserror
和%d的所有存储过程
例如,SP中包含以下raiserror
Table name : sp_text
Column name : obj_Text
我尝试了下面的查询,但没有得到结果
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%'
您也不能选择或筛选存储过程。您必须在查询中使用转义字符“\”,并在最后提到它。您使用了正斜杠而不是倒斜杠。事实上,您可以使用任何字符作为转义字符,但最后必须提到 请尝试此查询
SELECT OBJECT_NAME(object_id), * FROM sys.sql_modules
WHERE definition LIKE '%raiserror%[%]d%'
“您也不能选择或筛选存储过程”是什么意思?您不能这样做:FROM(存储过程)WHERE(存储过程列)=foo您的意思是不能将
EXEC
放在select
语句中吗?(这是真的,但与问题无关。)或者不能根据存储的进程的列名筛选它们?(这与问题有关,但不正确。)@gabe:两者都正确。我假设“sp_text”是一个存储过程。表的命名错误。。。上帝啊,更糟糕的是,OP在一个地方使用sp_text
,在另一个地方使用sp_text\u ismail
。ESCAPE停止搜索,您无法查询存储的proc@gbn:谢谢你的信息。你能给我任何关于这个事实的参考链接吗?为了我的学习。。
select * from sp_text_ismail where obj_Text like '%raiserror%' and obj_Text like '%\%d%' ESCAPE '\'