次の方法で共有


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_namesysname で、既定値は NULL です。 @profile_nameが指定されていない場合は、既定のデータベース メール プロファイルが使用されます。

[ @id = ] id

メッセージ送信先のオペレーターの ID を指定します。 @idint で、既定値は NULL です。

@idまたは@nameのいずれかを指定する必要があります。

[ @name = ] N'name'

メッセージを送信するオペレーターの名前。 @namesysname で、既定値は NULL です。

@idまたは@nameのいずれかを指定する必要があります。

メッセージを受信する前に、オペレーターに電子メール アドレスを定義する必要があります。

[ @subject = ] N'subject'

電子メール メッセージの件名。 @subjectnvarchar(256) で、既定値は NULL です。

[ @body = ] N'body'

電子メール メッセージの本文。 @bodynvarchar(max) で、既定値は NULL です。

[ @file_attachments = ] N'file_attachments'

電子メール メッセージに添付するファイルの名前を指定します。 @file_attachmentsnvarchar(512) で、既定値は NULL です。

[ @mail_database = ] N'mail_database'

メール ホスト データベースの名前を指定します。 @mail_databasesysname で、既定値は msdb です。 @mail_databaseが指定されていない場合、msdb データベースは既定で使用されます。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

ここでは、指定したメッセージが、指定したオペレーターの電子メール アドレスに送信されます。 オペレーターに電子メール アドレスが構成されていない場合、 sp_notify_operator はエラーを返します。

データベース メールとメール ホスト データベースは、オペレーターに通知を送信する前に構成する必要があります。

アクセス許可

このストアド プロシージャは、 db_owner ロールによって所有されています。 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

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