我有一个脚本化的 SQL Server 代理作业,我正在尝试从服务器传输到本地数据库,但我收到以下错误消息:
消息 14234,级别 16,状态 1,过程 sp_verify_job,第 243 行指定的“@notify_email_operator_name”无效(sp_help_operator 返回有效值)。
双击错误消息甚至不会将我带到它失败的行。以前有没有其他人得到过这个?
我有一个脚本化的 SQL Server 代理作业,我正在尝试从服务器传输到本地数据库,但我收到以下错误消息:
消息 14234,级别 16,状态 1,过程 sp_verify_job,第 243 行指定的“@notify_email_operator_name”无效(sp_help_operator 返回有效值)。
双击错误消息甚至不会将我带到它失败的行。以前有没有其他人得到过这个?
用于Ctrl+F
查找@notify_email_operator_name
出现的位置。它可能设置为您尚未在本地计算机上设置的电子邮件配置文件。
对于 SQL Server 2005 及更高版本,您可以使用 SMTP 服务器设置数据库邮件。
在您的情况下,您可能只是在您的机器上进行一些测试,并且您可能不关心电子邮件通知,因此您可以安全地设置@notify_email_operator_name = NULL
然后重新运行脚本。
在 SSMS 左侧的 SQL Server 代理树下,您会找到一个名为操作员的节点。创建一个与您缺少的名称相同的名称,或者从您生成作业创建脚本的同一位置生成一个创建脚本。
您的服务器可能设置了一个操作员来处理您没有的电子邮件通知。如果您确实需要电子邮件通知,或者您只是想匹配您的服务器环境以进行测试,请在填写空白后运行以下命令:
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
我在部署/升级本地测试数据库时遇到了这个问题,即使我们有三个答案作为线索,我也花了整个下午才弄清楚如何解决这个问题。
达沃斯的答案应该是正确的,但就我而言,sp_add_job
我发现 with@notify_email_operator_name
已经分配了一个默认值,所以我不能将其更改为 null。
所以谈到托德的回答,我添加了一个名为notify_email_operator_name
但它不起作用的操作员,并且部署显示了同样的错误。
然后我认为如果部署在生产服务器上有效,则必须有正确的操作员。所以我连接到生产服务器,发现操作员的正确名称实际上是分配的默认值。
简而言之解决方案