sp_notify_operator (Transact-SQL)

适用范围:SQL Server

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

Transact-SQL 语法约定

语法

sp_notify_operator
    [ [ @profile_name = ] N'profile_name' ]
    [ , [ @id = ] id ]
    [ , [ @name = ] N'name' ]
    [ , [ @subject = ] N'subject' ]
    [ , [ @body = ] N'body' ]
    [ , [ @file_attachments = ] N'file_attachments' ]
    [ , [ @mail_database = ] N'mail_database' ]
[ ; ]

参数

[ @profile_name = ] N'profile_name'

用于发送消息的数据库邮件配置文件的名称。 @profile_name为 sysname,默认值为 NULL. 如果未指定@profile_name,则使用默认数据库邮件配置文件。

[ @id = ] id

向其发送消息的操作员的标识符。 @id为 int,默认值为 NULL.

必须指定@id@name之一。

[ @name = ] N'name'

向其发送消息的操作员的名称。 @name为 sysname,默认值为 NULL.

必须指定@id@name之一。

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

[ @subject = ] N'subject'

电子邮件的主题。 @subject为 nvarchar(256),默认值为 NULL.

[ @body = ] N'body'

电子邮件的正文。 @body为 nvarchar(max),默认值为 NULL.

[ @file_attachments = ] N'file_attachments'

要附加到电子邮件的文件的名称。 @file_attachments为 nvarchar(512),默认值为 NULL.

[ @mail_database = ] N'mail_database'

指定邮件主机数据库的名称。 @mail_database为 sysname,默认值为 msdb. 如果未指定@mail_database,则msdb默认使用数据库。

返回代码值

0(成功)或 1(失败)。

注解

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

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

权限

可以授予 EXECUTE 此过程的权限,但在 SQL Server 升级期间可能会重写这些权限。

其他用户必须被授予数据库中以下SQL Server 代理固定数据库角色msdb之一:

  • 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