次の方法で共有


sysmail_update_profileaccount_sp (Transact-SQL)

データベース メール プロファイル内のアカウントのシーケンス番号を更新します。

トピック リンク アイコン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_spmsdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。

権限

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

次の例では、msdb データベースのプロファイル AdventureWorks2008R2 Administrator 内のアカウント Admin-BackupServer に対して、シーケンス番号を変更します。このコードを実行すると、アカウントのシーケンス番号は 3 になります。これは、最初の 2 つのアカウントが失敗した場合に試行されることを示します。

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
    @profile_name = 'AdventureWorks2008R2 Administrator'
    ,@account_name = 'Admin-BackupServer',
    ,@sequence_number = 3;