sp_notify_operator (Transact-SQL)

适用于:SQL Server

使用数据库邮件向操作员发送电子邮件。

Transact-SQL 语法约定

语法

  
sp_notify_operator  
    [ @profile_name = ] 'profilename' ,  
    [ @id = ] id ,  
    [ @name = ] 'name' ,  
    [ @subject = ] 'subject' ,  
    [ @body = ] 'message' ,  
    [ @file_attachments = ] 'attachment'  
    [ @mail_database = ] 'mail_host_database'  

参数

[ @profile_name = ] 'profilename'用于发送消息的数据库邮件配置文件的名称。 profilenamenvarchar(128)。 如果未指定 profilename,则使用默认数据库邮件配置文件。

[ @id = ] id 要向其发送消息的操作员的标识符。 idint,默认值为 NULL。 必须指定 ID名称之一。

[ @name = ] 'name' 要向其发送消息的运算符的名称。 名称nvarchar(128),默认值为 NULL。 必须指定 ID名称之一。

注意

必须先为操作员定义电子邮件地址,然后才能接收邮件。

[ @subject = ] 'subject' 电子邮件的主题。 subjectnvarchar(256), 没有默认值。

[ @body = ] 'message' 电子邮件的正文。 消息nvarchar(max), 没有默认值。

[ @file_attachments = ] 'attachment' 要附加到电子邮件的文件的名称。 attachmentnvarchar(512),没有默认值。

[ @mail_database = ] 'mail_host_database' 指定邮件主机数据库的名称。 mail_host_database为 nvarchar(128)。 如果未指定mail_host_database,则默认使用 msdb 数据库。

返回代码值

0 (成功) 或 1 (失败)

注解

将指定消息发送到指定操作员的电子邮件地址。 如果操作员没有配置电子邮件地址,则返回一个错误。

必须先配置数据库邮件和邮件主机数据库才能将通知发送给操作员。

权限

默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。 其他用户必须被授予 msdb 数据库中下列 SQL Server 代理固定数据库角色的权限之一:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

有关这些角色的权限的详细信息,请参阅 SQL Server 代理固定数据库角色

示例

下面的示例使用 François Ajenstat 数据库邮件配置文件将一份通知电子邮件发送给操作员 AdventureWorks Administrator 电子邮件的主题是 Test Notification。 此电子邮件包含一句话“This is a test of notification via e-mail”。

USE msdb ;  
GO  
  
EXEC dbo.sp_notify_operator  
   @profile_name = N'AdventureWorks Administrator',  
   @name = N'François Ajenstat',  
   @subject = N'Test Notification',  
   @body = N'This is a test of notification via e-mail.' ;  
GO  

另请参阅

SQL Server 代理存储过程 (Transact-SQL)
sp_add_operator (Transact-SQL)
sp_help_operator (Transact-SQL)
sp_delete_operator (Transact-SQL)