sysmail_update_profileaccount_sp (Transact-SQL)
適用対象: 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 部構成の名前で実行する必要があります。
アクセス許可
このストアド プロシージャは、 db_owner ロールによって所有されています。 EXECUTE
アクセス許可は任意のユーザーに付与できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
例
次の例では、msdb
データベースのプロファイル AdventureWorks Administrator
内のアカウント Admin-BackupServer
のシーケンス番号を変更します。 このコードを実行すると、アカウントのシーケンス番号は 3
になります。これは、最初の 2 つのアカウントが失敗した場合に試行されることを示します。
EXEC msdb.dbo.sysmail_update_profileaccount_sp
@profile_name = 'AdventureWorks Administrator',
@account_name = 'Admin-BackupServer',
@sequence_number = 3;