Share via


sysmail_add_profileaccount_sp (Transact-SQL)

データベース メール プロファイルにデータベース メール アカウントを追加します。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_sp の AccountRetryDelay パラメータで設定された時間数に基づいてメール送信が一時停止し、一番小さなシーケンス番号からメール送信が再開されます。指定されたプロファイルの各アカウントを使用して電子メール メッセージの送信を試行するよう、外部メールの処理回数を構成するには、sysmail_configure_sp の AccountRetryAttempts パラメータを使用します。

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

ストアド プロシージャ sysmail_add_profileaccount_spmsdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。

権限

このプロシージャの実行権限は、既定では sysadmin 固定サーバー ロールのメンバに与えられています。

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

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