Sql-Server

找不到與工作相關的活動電子郵件通知

  • October 15, 2020

我們有一封通過我們的 SQL Server 發送的電子郵件通知,但是我找不到任何與之相關的工作或設置。它絕對是正確的伺服器,我以管理員身份登錄。電子郵件通過電子郵件運營商發送,作為相關伺服器上的設置。電子郵件肯定是從有問題的 SQL 伺服器發送的,因為當我在 sysemail_mailitems 中查詢 msdb 時,收件人收到的電子郵件肯定存在,如下面的螢幕截圖所示。我們要做的就是更改通知的接收者,但前提是我們知道在哪裡……

在此處輸入圖像描述

它可能來自工作或某處的儲存過程中。如果它是一個儲存過程,那麼在找到它之後,使用下面的工作搜尋來查找呼叫該 sp 的工作。


---- Search Job Steps
SELECT 
J.name AS JobName,
JS.step_name AS StepName,
JS.step_id AS StepNumber,
JS.command

FROM 
msdb.dbo.sysjobs J
INNER JOIN msdb.dbo.sysjobsteps JS
ON J.job_id = JS.job_id

WHERE
JS.command LIKE '%XXXXXX%'


---- Search Stored Procs, might want to loop through all databases 

USE XXXXX


SELECT 
DB_NAME() AS DatabaseName,
SCHEMA_NAME(O.schema_id) AS SchemaName
O.name AS SPName,
MO.definition AS SPDefinition

FROM
sys.sql_modules MO
INNER JOIN sys.objects O
ON MO.object_id = O.object_id

WHERE
MO.definition LIKE '%XXXXXX%'

將 WHERE 子句替換為電子郵件本身中的一小部分,您有信心在定義的正文中。如果電子郵件中的某些內容是動態的或每次都相同,則從您的文章中並不明顯。

引用自:https://dba.stackexchange.com/questions/278116