19

我有一个脚本化的 SQL Server 代理作业,我正在尝试从服务器传输到本地数据库,但我收到以下错误消息:

消息 14234,级别 16,状态 1,过程 sp_verify_job,第 243 行指定的“@notify_email_operator_name”无效(sp_help_operator 返回有效值)。

双击错误消息甚至不会将我带到它失败的行。以前有没有其他人得到过这个?

4

4 回答 4

22

用于Ctrl+F查找@notify_email_operator_name出现的位置。它可能设置为您尚未在本地计算机上设置的电子邮件配置文件。

对于 SQL Server 2005 及更高版本,您可以使用 SMTP 服务器设置数据库邮件。

在您的情况下,您可能只是在您的机器上进行一些测试,并且您可能不关心电子邮件通知,因此您可以安全地设置@notify_email_operator_name = NULL 然后重新运行脚本。

于 2011-12-09T00:17:59.193 回答
16

在 SSMS 左侧的 SQL Server 代理树下,您会找到一个名为操作员的节点。创建一个与您缺少的名称相同的名称,或者从您生成作业创建脚本的同一位置生成一个创建脚本。

于 2014-05-09T09:37:41.693 回答
5

您的服务器可能设置了一个操作员来处理您没有的电子邮件通知。如果您确实需要电子邮件通知,或者您只是想匹配您的服务器环境以进行测试,请在填写空白后运行以下命令:

USE [msdb]
GO

EXEC msdb.dbo.sp_add_operator @name=N'youroperatorname',
        @enabled=1,
        @email_address=N'youremail@yourdomain.com',
        @category_name=N'[Uncategorized]'
GO
于 2015-12-04T15:24:16.373 回答
0

我在部署/升级本地测试数据库时遇到了这个问题,即使我们有三个答案作为线索,我也花了整个下午才弄清楚如何解决这个问题。

达沃斯的答案应该是正确的,但就我而言,sp_add_job我发现 with@notify_email_operator_name已经分配了一个默认值,所以我不能将其更改为 null。

所以谈到托德的回答,我添加了一个名为notify_email_operator_name但它不起作用的操作员,并且部署显示了同样的错误。

然后我认为如果部署在生产服务器上有效,则必须有正确的操作员。所以我连接到生产服务器,发现操作员的正确名称实际上是分配的默认值。

简而言之解决方案

  1. 转到部署按预期工作的 MS SQL。
  2. 在 SQL Server 代理 > 运算符 > 找到您需要的运算符。
  3. 右键单击 > 脚本运算符为 > 创建到 > 剪贴板。
  4. 在有问题的服务器上运行剪贴板中的脚本。
于 2021-09-17T08:58:36.310 回答