sysmail_add_profileaccount_sp (Transact-SQL)

适用范围:SQL Server

在数据库邮件配置文件中添加一个数据库邮件帐户。 使用sysmail_add_account_sp创建数据库帐户后执行sysmail_add_profileaccount_sp,并使用sysmail_add_profile_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_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_numberint,无默认值。 序列号可以确定帐户在配置文件中的使用顺序。

返回代码值

0(成功)或 1(失败)。

注解

配置文件和帐户都必须已经存在。 否则,存储过程将返回错误。

此存储过程不会更改已与指定配置文件关联的帐户的序列号。 有关更新帐户序列号的详细信息,请参阅 sysmail_update_profileaccount_sp

序列号可以确定数据库邮件使用配置文件中帐户的顺序。 对于新的电子邮件,数据库邮件将从序列号最小的帐户开始。 如果该帐户失败,数据库邮件使用具有下一个最高序列号的帐户等,直到数据库邮件成功发送消息,或者具有最高序列号的帐户失败。 如果具有最高序列号的帐户失败,则数据库邮件暂停尝试在参数sysmail_configure_spAccountRetryDelay配置的时间量发送邮件,然后从最低序列号开始尝试再次发送邮件的过程。 使用参数sysmail_configure_sp配置AccountRetryAttempts外部邮件进程尝试使用指定配置文件中的每个帐户发送电子邮件的次数。

如果存在具有相同序列号的多个帐户,则数据库邮件将仅使用其中一个帐户发送给定的电子邮件。 在此情况下,数据库邮件不能保证使用具有该序列号的特定帐户,也不能保证使用同一个帐户发送各个邮件。

存储过程 sysmail_add_profileaccount_sp 位于 msdb 数据库中,由 dbo 架构拥有。 如果当前数据库不是 msdb,则必须使用三部分名称执行该过程。

权限

此存储过程由 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;