sysmail_update_profileaccount_sp (Transact-SQL)
データベース メール プロファイル内のアカウントのシーケンス番号を更新します。
構文
sysmail_update_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 (失敗)
結果セット
なし
説明
指定したアカウントと指定したプロファイルが関連付けられていない場合は、エラーが返されます。
シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。新しい電子メール メッセージの場合、データベース メールでは、一番小さなシーケンス番号の付いたアカウントから処理が開始されます。そのアカウントが失敗すると、データベース メールでは、このアカウントよりも大きいシーケンス番号を持つアカウントに処理が移ります。このように、データベース メールによってメッセージが正常に送信されるか、一番大きなシーケンス番号のアカウントが失敗するまで順に処理されます。一番大きなシーケンス番号のアカウントが失敗した場合、電子メール メッセージは失敗します。
同じシーケンス番号を持つアカウントが複数存在する場合、データベース メールでは、指定された電子メール メッセージに対して、これらのアカウントのいずれか 1 つのみが使用されます。この場合、そのシーケンス番号に対してどのアカウントが使用されるか、またメッセージごとに同じアカウントが使用されるかついては、データベース メールでは保証されません。
ストアド プロシージャ sysmail_update_profileaccount_sp は msdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。
権限
このプロシージャの実行権限は、既定では sysadmin 固定サーバー ロールのメンバに与えられています。
例
次の例では、msdb データベースのプロファイル AdventureWorks Administrator 内のアカウント Admin-BackupServer に対して、シーケンス番号を変更します。このコードを実行すると、アカウントのシーケンス番号は 3 になります。これは、最初の 2 つのアカウントが失敗した場合に試行されることを示します。
EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
@profile_name = 'AdventureWorks Administrator'
,@account_name = 'Admin-BackupServer',
,@sequence_number = 3;