问题描述
自 2021 年 7 月 1 日起,sql Server 代理在使用 sp_send_dbmail
执行包含链接服务器的存储过程时失败。如果我从存储过程中删除代码的链接服务器部分,作业将成功运行。
该作业仅执行以下 sql 语句:
EXECUTE msdb.dbo.sp_send_dbmail
@recipients = 'My.Name@MyEmailAddress',@subject = 'Daily Security Check',@query = 'EXECUTE MyDatabase.sec.pr_LinkedServerQuery',@attach_query_result_as_file = 1
我可以在以代理身份登录时从查询窗口手动成功运行此代码。但是,如果我 R 单击该作业并选择“在步骤开始作业...”,则代理作业将失败。此外,如果我通过删除 dbmail 过程来编辑作业并简单地运行 EXECUTE MyDatabase.sec.pr_LinkedServerQuery
代理作业是成功的。只有当它嵌套在 dbmail 过程中时才会失败。这项工作之前已经成功运行了一年多。
我使用的是 sql Server 2017。
日志显示关于 sp_send_dbmail
的错误,但对这个错误的搜索似乎没有反映我遇到的问题。
以用户身份执行:HCI\AgentName。适用于 64 位的 Microsoft (R) sql Server 执行包实用程序版本 14.0.3381.3 版权所有 (C) 2017 Microsoft。版权所有。开始时间:下午 2:19:52 进度:2021-07-06 14:19:52.96 来源:{457716A2-22BF-47F5-A08E-8A48A218911F} 执行查询“DECLARE @Guid UNIQUEIDENTIFI...”。 :100% 完成结束进度错误:2021-07-06 14:19:53.11 代码:0xC002F210 来源:执行 T-sql 语句任务执行 sql 任务说明:执行查询“EXECUTE msdb.dbo.sp_send_dbmail @recipients = '。 .”失败并出现以下错误:“无法初始化 sqlcmd 库,错误号为 -2147467259。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或者连接建立不正确。结束错误警告:2021-07-06 14:19:53.11 代码:0x80019002 来源:Subplan_1 描述:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。 Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。 End Warning Progress: 2021-07-06 14:19:53.16 Source: Notify Operator Task Executing query "EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...".: 100% 完成 End Progress DTExec: The package执行返回 DTSER_FAILURE (1)。开始:下午 2:19:52 结束:下午 2:19:54 经过:1.719 秒。包执行失败。步骤失败
到目前为止,这个问题一直困扰着我。感谢您对杀死这只野兽的任何见解!