sql-server - 确定字符串在 SQL Server 中的存储过程中存在的次数
问题描述
我必须在所有可用的存储过程中搜索特定字符串的出现SQL Server
。我知道我们可以通过使用下面的查询来得到这个。
SELECT OBJECT_NAME(OBJECT_ID) PrcName
FROM sys.sql_modules
WHERE DEFINITION LIKE '%SearchStr%'
但是有没有一种方法可以找出特定字符串在每个存储过程中可用的次数?这是为了估计修改存储过程的工作量。任何帮助都感激不尽。
解决方案
这将按测试工作:
;WITH cte as
(
SELECT OBJECT_NAME(OBJECT_ID) PrcName, OBJECT_ID
FROM sys.sql_modules
WHERE DEFINITION LIKE '%tblNDT%')
select t1.PrcName, (LEN(Definition) - LEN(replace(Definition,'tblNDT',''))) / LEN('tblNDT') Cnt
from cte t1
INNER JOIN sys.sql_modules t2 on t1.object_id = t2.object_id
推荐阅读
- delphi - Delphi Tchart左轴时间标签
- javascript - 在指令控制器中更改时获取过滤数组
- python - 在 Pandas 中选择任意日期子集
- javascript - 为什么只删除双循环内的偶数/奇数孩子
- search - 如果用户输入形容词,如何自动建议用户?
- c# - 在 ASP.Net Zero 中,如何在不通过标头中的身份验证令牌的情况下下载图像?
- php - PHP while (list($key, ) = each($array)) 与 while (list($key) = each($array))
- python - 如何解释绘图结果普通岭回归(检查编辑)
- python - 为什么我的 list.append 没有永久添加我的项目?
- javascript - 反应原生元素复选框