Поделиться через


sysmail_add_profileaccount_sp (Transact-SQL)

Добавляет учетную запись Database Mail к профилю компонента Database Mail. Необходимо выполнить хранимую процедуру sysmail_add_profileaccount_sp после создания учетной записи базы данных с помощью процедуры sysmail_add_account_sp (Transact-SQL) и профиля базы данных с помощью процедуры sysmail_add_profile_sp (Transact-SQL).

Значок ссылки на разделСинтаксические обозначения в 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
    Идентификатор профиля, к которому добавляется учетная запись. Аргумент profile_id имеет тип int и значение по умолчанию NULL. Необходимо указать либо аргумент profile_id, либо аргумент profile_name.

  • [ @profile_name = ] 'profile_name'
    Имя профиля, к которому добавляется учетная запись. Аргумент profile_name имеет тип sysname и значение по умолчанию NULL. Необходимо указать либо аргумент profile_id, либо аргумент profile_name.

  • [ @account_id = ] account_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 (неуспешное завершение)

Замечания

Должны заранее существовать как профиль, так и учетная запись. В противном случае хранимая процедура возвращает ошибку.

Следует обратить внимание, что эта хранимая процедура не изменяет порядковый номер учетной записи, уже связанной с конкретным профилем. Дополнительные сведения об обновлении порядкового номера учетной записи см. в разделе sysmail_update_profileaccount_sp (Transact-SQL).

Порядковый номер определяет порядок, в соответствии с которым компонент Database Mail использует учетные записи в профиле. Для нового сообщения электронной почты компонент Database Mail начинает с учетной записи, имеющей наименьший порядковый номер. Если эта учетная запись недоступна, компонент Database Mail использует учетную запись со следующим порядковым номером и так далее, пока либо сообщение не будет успешно отослано, либо не окажется недоступной учетная запись с наибольшим порядковым номером. Если учетная запись с наибольшим порядковым номером недоступна, компонент Database Mail приостанавливает попытки отправить почту на время, заданное аргументом AccountRetryDelay процедуры sysmail_configure_sp, после чего возобновляет попытки отправить почту, начиная с наименьшего порядкового номера. Следует использовать аргумент AccountRetryAttempts процедуры sysmail_configure_sp для задания количества попыток, которые внешний почтовый процесс предпримет для отправки почтового сообщения посредством каждой из учетных записей указанного профиля.

Если существует несколько учетных записей с одинаковым порядковым номером, то компонент Database Mail будет использовать только одну из них для отправки данного электронного сообщения. В этом случае компонент Database Mail не указывает, какая учетная запись используется для этого порядкового номера, и не гарантирует того, что от сообщения к сообщению будет использоваться одна и та же учетная запись.

Хранимая процедура sysmail_add_profileaccount_sp находится в базе данных msdb и принадлежит схеме dbo. Если текущей базой данных является не msdb, процедуру следует выполнять с трехкомпонентным именем.

Разрешения

По умолчанию разрешения на выполнение этой процедуры предоставляются членам предопределенной роли сервера sysadmin.

Примеры

В следующем примере профиль AdventureWorks2008R2 Administrator ассоциируется с учетной записью Audit Account. Учетная запись аудита имеет порядковый номер 1.

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