sp_notify_operator (Transact-SQL)
适用于:SQL Server
使用数据库邮件向操作员发送电子邮件。
语法
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'
要向其发送消息的运算符的名称。 名称 为 nvarchar(128),默认值为 NULL。 必须指定 ID 或名称之一。
注意
必须先为操作员定义电子邮件地址,然后才能接收邮件。
[ @subject = ] 'subject'
电子邮件的主题。 subject 为 nvarchar(256), 没有默认值。
[ @body = ] '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 代理固定数据库角色。
示例
下面的示例使用 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)