Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como alterar o número de sequência de uma conta do Database Mail em um perfil no SQL Server (T-SQL)


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