sysmail_update_profileaccount_sp (Transact-SQL)

適用対象:SQL Server

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

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 部構成の名前で実行する必要があります。

アクセス許可

このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

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

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