在SQL Server 2008R2数据库中查找所有sp_send_dbmail出现的地方。

3
我有一个数据库,里面存储了数百个存储过程、触发器和作业。其中一些使用sp_send_dbmail从SQL SERVER内部发送电子邮件,但我想获取所有发送电子邮件的存储过程/触发器/作业列表。我尝试在网上查找类似的内容,但没有找到任何信息。 如何搜索SQL Server数据库中的字符串? 从上面的链接中,我尝试了几个脚本,找到了所有出现的字符串(sp_send_dbmail),但这并没有帮助我,因为大多数搜索数据是在表格和列中,而不是实际的存储过程脚本中。
请问有人可以指点我正确的方向吗?

1
实际上,您提供的链接有几个答案都可以完全满足您的要求。一些建议使用Red Gate SQL Search或Apex来完成此操作。另一个则提供了搜索过程代码所需的SQL语句。请查看"The Bojan"的答案。 - Sean Lange
1
Redgate的SQL Search是一个非常好用的工具,可以帮助你完成这项任务。 - Krishnraj Rana
1
备选免费工具-https://www.devart.com/dbforge/sql/search/ - Devart
谢谢大家的建议......Devart下面的答案已经足够让我得到我想要的列表了。我也会记下你们提到的工具,以防将来有类似或更复杂的任务需要完成。 - Phani
1个回答

4
SELECT OBJECT_SCHEMA_NAME(s.[object_id]) + '.' + OBJECT_NAME(s.[object_id])
FROM sys.sql_modules s
WHERE s.[definition] LIKE '%sp_send_dbmail%'

SELECT s1.name
FROM msdb.dbo.sysjobsteps s
JOIN msdb.dbo.sysjobs s1 ON s.job_id = s1.job_id
WHERE s.subsystem = 'TSQL'
    AND s.command LIKE '%sp_send_dbmail%'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接