sql-server-agent - 使用 sp_send_dbmail 执行包含链接服务器的存储过程时,SQL Server 代理失败
问题描述
sp_send_dbmail
从 2021 年 7 月 1 日开始,SQL Server 代理在用于执行包含链接服务器的存储过程时失败。如果我从存储过程中删除代码的链接服务器部分,则作业将成功运行。该作业只需执行以下 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
在以代理身份登录时,我可以从查询窗口手动成功运行此代码。但是,如果我右击该作业并选择“Start job at step...”,代理作业将失败。此外,如果我通过删除 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 UNIQUEIDENTIFIER EXECUTE msdb..sp...”。 :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 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 2021-07-06 14:19:53.11 代码:0x80019002 来源:Subplan_1 描述:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 2021-07-06 14:19:53.11 代码:0x80019002 来源:Subplan_1 描述:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。结束警告进度:2021-07-06 14:19:53.16 来源:通知操作员任务执行查询“EXECUTE msdb.dbo.sp_notify_operator @name=N'Andy H...”。:100% 完成结束进度 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败 包执行返回 DTSER_FAILURE (1)。开始时间:下午 2:19:52 结束时间:下午 2:19:54 经过时间:1.719 秒。包执行失败。步骤失败
到目前为止,这个问题一直困扰着我。感谢您对杀死这只野兽的任何见解!
解决方案
推荐阅读
- c# - ASP.NET Core 2.x 会话 IdleTimeout 不起作用
- vue.js - 头部带有 Vuetify 主题样式的 Nuxt
- mysql - MySQL Select where Tag = "First tag" AND Tag = "Another tag" 使用参考表
- oracle - 快照大数据集Oracle的策略
- rest - API URI 设计嵌套 vs 查询字符串
- javascript - 如何防止脚本在 html 帖子上运行
- java - 如何根据输入创建不同的spring bean
- java - @InjectMocks 类中的异常的 Junit 测试
- javascript - 事件处理程序可以在事件之间传播吗
- python-3.x - 云视频智能 API 错误 400 和 504