次の方法で共有


sysmail_add_profileaccount_sp (Transact-SQL)

適用対象: SQL Server

データベース メール プロファイルにデータベース メール アカウントを追加します。 sysmail_add_account_spを使用してデータベース アカウントが作成され、データベース プロファイルが sysmail_add_profile_sp で作成された後に、sysmail_add_profileaccount_spを実行します。

Transact-SQL 構文表記規則

構文

sysmail_add_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 (失敗)。

解説

プロファイルとアカウントの両方が既に存在している必要があります。 両方またはいずれかが存在しないと、このストアド プロシージャはエラーを返します。

このストアド プロシージャでは、指定したプロファイルに既に関連付けられているアカウントのシーケンス番号は変更されません。 アカウントのシーケンス番号の更新の詳細については、「 sysmail_update_profileaccount_sp」を参照してください。

シーケンス番号によって、データベース メールではプロファイル内のアカウントがどの順番で使用されるかが決まります。 新しい電子メール メッセージの場合、データベース メールでは、一番小さなシーケンス番号の付いたアカウントから処理が開始されます。 そのアカウントが失敗した場合、データベース メールは、メッセージを正常に送信データベース メールか、最も大きいシーケンス番号のアカウントが失敗するまで、次に大きいシーケンス番号のアカウントを使用します。 シーケンス番号が最も大きいアカウントが失敗した場合、データベース メールは、sysmail_configure_spAccountRetryDelay パラメーターで構成された時間だけメールの送信を試み、最も低いシーケンス番号から始めて、メールを再度送信するプロセスを開始します。 sysmail_configure_spAccountRetryAttempts パラメーターを使用して、外部メール プロセスが指定したプロファイルの各アカウントを使用して電子メール メッセージの送信を試行する回数を構成します。

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

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

アクセス許可

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

次の例では、プロファイル AdventureWorks Administrator をアカウント Audit Accountに関連付けます。 監査アカウントには、シーケンス番号の 1があります。

EXEC msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'AdventureWorks Administrator',
    @account_name = 'Audit Account',
    @sequence_number = 1;