sp_notify_operator (Transact-SQL)

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

主题链接图标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'
    用于发送消息的数据库邮件配置文件的名称。profilename 的数据类型为 nvarchar(128)。如果未指定 profilename,则使用默认的数据库邮件配置文件。

  • [ @id= ] id
    向其发送消息的操作员的标识符。id 的数据类型为 int,默认值为 NULL。必须指定 id 或 name 中的一项。

  • [ @name= ] 'name'
    向其发送消息的操作员的名称。name 的数据类型为 nvarchar(128),默认值为 NULL。必须指定 id 或 name 中的一项。

    注意注意

    必须先为操作员定义一个电子邮件地址,然后他们才能接收消息。

  • [ @subject= ] 'subject'
    电子邮件的主题。subject 的数据类型为 nvarchar(256),无默认值。

  • [ @body= ] 'message'
    电子邮件的正文。message 的数据类型为 nvarchar(max),无默认值。

  • [ @file_attachments= ] 'attachment'
    附加到电子邮件的文件的名称。attachment 的数据类型为 nvarchar(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 代理固定数据库角色

示例

下面的示例使用 AdventureWorks Administrator 数据库邮件配置文件将一份通知电子邮件发送给操作员 François Ajenstat电子邮件的主题是 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