Se você já adicionou uma conta do Database Mail a um perfil, mas agora deseja alterar o número de sequência, pode fazer isso com o
sysmail_update_profileaccount_sp
procedimento armazenado. Ao fazer isso, você precisa fornecer o nome ou ID da conta e do perfil. Isso ocorre porque você precisa especificar exatamente qual associação de perfil/conta deseja atualizar.
Exemplo
Segue um exemplo para demonstrar:
EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin',
@sequence_number = 2;
Este exemplo altera o número de sequência da conta chamada “DB Admin” no perfil chamado “DB Admin Profile”.
Nesse caso, alterei o número de sequência para 2, o que significa que a conta “DB Admin” só será usada se a primeira conta falhar.
Usando os IDs de perfil/conta
Neste exemplo, uso os IDs do perfil e da conta em vez de seus nomes:
EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
@profile_id = 1,
@account_id = 1,
@sequence_number = 3;
Usando uma combinação de ID e nome
Você também pode fornecer o ID de um e o nome do outro.
Por exemplo:
EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_id = 1,
@sequence_number = 4;
Ou o contrário:
EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
@profile_id = 1,
@account_name = 'DB Admin',
@sequence_number = 1;
Como funciona o número de sequência?
Você pode adicionar várias contas a um perfil do Database Mail. O número de sequência determina a ordem em que essas contas são usadas no perfil ao enviar emails. O Database Mail começa com a conta que possui o número de sequência mais baixo. Se essa conta falhar, a conta com o próximo número de sequência mais alto será usada e assim por diante.
Se existir mais de uma conta com o mesmo número de sequência, o Database Mail usará apenas uma dessas contas para uma determinada mensagem de email.
No entanto, não há garantia de que a mesma conta será usada para mensagens subsequentes. Por exemplo, se duas contas compartilharem um número de sequência 1, você poderá receber alguns e-mails de uma conta e outros da outra.
Devo salientar que, de acordo com este artigo da Microsoft, quando você envia uma nova mensagem de email, o Database Mail na verdade começa com a última conta que enviou uma mensagem com sucesso , ou a conta que possui o número de sequência mais baixo se nenhuma mensagem ainda tiver sido enviada.
O fato de começar com a última conta que enviou uma mensagem com sucesso não é mencionado na documentação oficial de
sysmail_add_profileaccount_sp
ou sysmail_update_profileaccount_sp
. De qualquer forma, é algo para se ter em mente e pode evitar que você rasgue os cabelos se o seu DB Mail parecer estar ignorando seus números de sequência.
Localização do procedimento armazenado
Observe que o
sysmail_update_profileaccount_sp
procedimento armazenado está no msdb
banco de dados, e é de propriedade do dbo
esquema. Portanto, você precisará usar a nomenclatura de três partes se executá-la de fora do msdb
base de dados. Como devolver informações de conta e perfil
Os artigos a seguir fornecem instruções para retornar informações de conta e perfil.
- Obter uma lista de contas do Database Mail no SQL Server
- Retorne uma lista de perfis do Database Mail no SQL Server