我有几个存储过程,我想搜索它们并返回任何不包含关键字nolock
的过程的名称。我通过以下查询成功实现了这一目标。
Select
name as [storedprocedures with no lock]
from
databasename.sys.storedprocedures
where
name not in (Select name as [storedprocedures with no lock]
from databasename.sys.storedprocedures
where OBJECT_DEFINITION(OBJECT_ID) LIKE '%(nolock)%')
但是,我意识到上面的内容会返回一个根本没有关键字nolock的过程。但是,项目的目的是返回with nolock
语句中每个表名后未提及关键字select
的任何过程的名称。上述查询不适用于假设有多个nolock
但具有一个with nolock
的过程。
请问有什么地方可以让我搜索到程序结束并返回存储过程名称,其中提到表“A”并且关键字{{1}}没有超过它?
任何帮助都将不胜感激。