sysmail_add_profileaccount_sp (Transact-SQL)
適用対象: SQL Server
データベース メール プロファイルにデータベース メール アカウントを追加します。 sysmail_add_account_spを使用してデータベース アカウントが作成され、データベース プロファイルが sysmail_add_profile_sp で作成された後に、sysmail_add_profileaccount_sp
を実行します。
構文
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」を参照してください。
シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。 新しい電子メール メッセージの場合、データベース メールでは、一番小さなシーケンス番号の付いたアカウントから処理が開始されます。 そのアカウントが失敗した場合、データベース メールは、メッセージを正常に送信データベース メールか、最も大きいシーケンス番号のアカウントが失敗するまで、次に大きいシーケンス番号のアカウントを使用します。 シーケンス番号が最も大きいアカウントが失敗した場合、データベース メールは、sysmail_configure_sp
のAccountRetryDelay
パラメーターで構成された時間だけメールの送信を試み、最も低いシーケンス番号から始めて、メールを再度送信するプロセスを開始します。 sysmail_configure_sp
の AccountRetryAttempts
パラメーターを使用して、外部メール プロセスが指定したプロファイルの各アカウントを使用して電子メール メッセージの送信を試行する回数を構成します。
同じシーケンス番号を持つアカウントが複数存在する場合、データベース メールでは、指定された電子メール メッセージに対して、これらのアカウントのいずれか 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;