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_numberint,无默认值。 序列号可以确定帐户在配置文件中的使用顺序。

返回代码值

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

结果集

无。

注解

如果指定的帐户未与指定的配置文件关联,则返回错误。

序列号可以确定数据库邮件使用配置文件中帐户的顺序。 对于新的电子邮件,数据库邮件以序列号最低的帐户开头。 如果该帐户失败,数据库邮件将使用下一个序列号较大的帐户并依此类推,直到数据库邮件成功发送邮件,或者序列号最大的帐户也失败为止。 如果具有最高序列号的帐户失败,则电子邮件发送失败。

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

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

权限

此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 EXECUTE 权限,但这些权限可能会在 SQL Server 升级期间被重写。

示例

以下示例更改数据库中配置文件AdventureWorks Administratormsdb帐户Admin-BackupServer的序列号。 执行此代码后,该帐户的序列号为 3,指示前两个帐户失败后将尝试使用此帐户。

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