sp_notify_operator (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
请参阅
参考
SQL Server 代理存储过程 (Transact-SQL)
sp_add_operator (Transact-SQL)