sp_notify_operator (Transact-SQL)
适用范围:SQL Server
使用数据库邮件向操作员发送电子邮件。
语法
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
则返回错误。
必须先配置数据库邮件和邮件主机数据库才能将通知发送给操作员。
权限
此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 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