適用対象: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 を指定します。
@id は int で、既定値は NULL です。
@idまたは@nameのいずれかを指定する必要があります。
[ @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 のアップグレード中にオーバーライドされる可能性があります。
他のユーザーには、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
EXECUTE 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