sysmail_add_profileaccount_sp (Transact-SQL)
Область применения: SQL Server
Добавляет учетную запись Database Mail к профилю компонента Database Mail. Выполните после sysmail_add_profileaccount_sp
создания учетной записи базы данных с sysmail_add_account_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
Идентификатор профиля для добавления учетной записи. @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 не используется без значения по умолчанию. Порядковый номер определяет порядок, в соответствии с которым учетные записи используются в профиле.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
Должны заранее существовать как профиль, так и учетная запись. В противном случае хранимая процедура возвращает ошибку.
Эта хранимая процедура не изменяет порядковый номер учетной записи, уже связанной с указанным профилем. Дополнительные сведения об обновлении последовательности учетной записи см. в sysmail_update_profileaccount_sp.
Порядковый номер определяет порядок, в соответствии с которым компонент Database Mail использует учетные записи в профиле. Для нового сообщения электронной почты компонент 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
является.
Разрешения
Вы можете предоставить 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;