sysmail_add_profileaccount_sp (Transact-SQL)

適用対象:SQL Server

データベース メール プロファイルにデータベース メール アカウントを追加します。 sysmail_add_account_sp (Transact-SQL) を使用してデータベース アカウントを作成し、データベース プロファイルを sysmail_add_profile_sp (Transact-SQL) で作成した後に実行sysmail_add_profileaccount_spします。

Transact-SQL 構文表記規則

構文

sysmail_add_profileaccount_sp { [ @profile_id = ] profile_id | [ @profile_name = ] 'profile_name' } ,
    { [ @account_id = ] account_id | [ @account_name = ] 'account_name' }
    [ , [ @sequence_number = ] sequence_number ]
[ ; ]

引数

[ @profile_id = ] profile_id

アカウントを追加するプロファイル ID。 @profile_idは int で、既定値は NULL. @profile_idまたは@profile_name指定する必要があります。

[ @profile_name = ] 'profile_name'

アカウントを追加するプロファイル名を指定します。 @profile_nameは sysname で、既定値は NULL. @profile_idまたは@profile_name指定する必要があります。

[ @account_id = ] account_id

プロファイルに追加するアカウント ID。 @account_idは int で、既定値は NULL. @account_idまたは@account_name指定する必要があります。

[ @account_name = ] 'account_name'

プロファイルに追加するアカウント名を指定します。 @account_nameは sysname で、既定値は NULL. @account_idまたは@account_name指定する必要があります。

[ @sequence_number = ] sequence_number

プロファイル内のアカウントのシーケンス番号。 @sequence_numberは int で、既定値はありません。 シーケンス番号によって、プロファイルでアカウントが使用される順序が決まります。

リターン コードの値

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

解説

プロファイルとアカウントの両方が既に存在している必要があります。 両方またはいずれかが存在しないと、このストアド プロシージャはエラーを返します。

このストアド プロシージャでは、指定したプロファイルに既に関連付けられているアカウントのシーケンス番号は変更されません。 アカウントのシーケンス番号の更新の詳細については、「sysmail_update_profileaccount_sp (Transact-SQL)」を参照してください

シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。 新しい電子メール メッセージの場合、データベース メールでは、一番小さなシーケンス番号の付いたアカウントから処理が開始されます。 そのアカウントが失敗した場合、データベース メールは、メッセージを正常に送信データベース メールか、最も大きいシーケンス番号のアカウントが失敗するまで、次に大きいシーケンス番号のアカウントを使用します。 シーケンス番号が最も多いアカウントが失敗した場合、データベース メールは、パラメーターsysmail_configure_spAccountRetryDelay構成されている時間だけメールの送信を試み、最も低いシーケンス番号から始めて、メールの送信を再試行するプロセスを開始します。 パラメーターsysmail_configure_spAccountRetryAttempts使用して、外部メール プロセスが指定したプロファイルの各アカウントを使用して電子メール メッセージを送信しようとする回数を構成します。

同じシーケンス番号を持つアカウントが複数存在する場合、データベース メールでは、指定された電子メール メッセージに対して、これらのアカウントのいずれか 1 つのみが使用されます。 この場合、そのシーケンス番号に対してどのアカウントが使用されるか、またメッセージごとに同じアカウントが使用されるかついては、データベース メールでは保証されません。

ストアド プロシージャsysmail_add_profileaccount_spはデータベース内msdbにあり、dbo スキーマによって所有されています。 現在のデータベースが実行されていない msdb場合は、プロシージャを 3 部構成の名前で実行する必要があります。

アクセス許可

このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

次の例では、プロファイル AdventureWorks Administrator をアカウント Audit Accountに関連付けます。 監査アカウントのシーケンス番号 1は .

EXEC msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'AdventureWorks Administrator',
    @account_name = 'Audit Account',
    @sequence_number = 1;