次の方法で共有


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_idint で、既定値は NULL です。 @profile_idまたは@profile_nameを指定する必要があります。

[ @profile_name = ] 'profile_name'

更新するプロファイルのプロファイル名。 @profile_namesysname で、既定値は NULL です。 @profile_idまたは@profile_nameを指定する必要があります。

[ @account_id = ] account_id

更新するアカウント ID。 @account_idint で、既定値は NULL です。 @account_idまたは@account_nameを指定する必要があります。

[ @account_name = ] 'account_name'

更新するアカウントの名前。 @account_namesysname で、既定値は NULL です。 @account_idまたは@account_nameを指定する必要があります。

[ @sequence_number = ] sequence_number

アカウントの新しいシーケンス番号を指定します。 @sequence_numberint で、既定値はありません。 シーケンス番号によって、プロファイルでアカウントが使用される順序が決まります。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

ありません。

解説

指定されたアカウントが指定されたプロファイルに関連付けられていない場合は、エラーを返します。

シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。 新しい電子メール メッセージの場合、データベース メールは最も小さいシーケンス番号のアカウントで始まります。 そのアカウントが失敗すると、データベース メールでは、このアカウントよりも大きいシーケンス番号を持つアカウントに処理が移ります。このように、データベース メールによってメッセージが正常に送信されるか、一番大きなシーケンス番号のアカウントが失敗するまで順に処理されます。 一番大きなシーケンス番号のアカウントが失敗した場合、電子メール メッセージは失敗します。

同じシーケンス番号を持つアカウントが複数存在する場合、データベース メールでは、指定された電子メール メッセージに対して、これらのアカウントのいずれか 1 つのみが使用されます。 この場合、そのシーケンス番号に対してどのアカウントが使用されるか、またメッセージごとに同じアカウントが使用されるかついては、データベース メールでは保証されません。

ストアド プロシージャ sysmail_update_profileaccount_spmsdb データベースにあり、 dbo スキーマによって所有されます。 現在のデータベースが msdbされていない場合は、プロシージャを 3 部構成の名前で実行する必要があります。

アクセス許可

この手順では 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;