sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo cambiar el número de secuencia de una cuenta de correo de base de datos dentro de un perfil en SQL Server (T-SQL)

Si ya agregó una cuenta de Correo electrónico de base de datos a un perfil, pero ahora desea cambiar el número de secuencia, puede hacerlo con sysmail_update_profileaccount_sp procedimiento almacenado.

Al hacer esto, debe proporcionar el nombre o la identificación tanto de la cuenta como del perfil. Esto se debe a que debe especificar exactamente qué perfil/asociación de cuenta desea actualizar.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp  
    @profile_name = 'DB Admin Profile',
    @account_name = 'DB Admin',
    @sequence_number = 2;

Este ejemplo cambia el número de secuencia de la cuenta denominada "Administrador de base de datos" dentro del perfil denominado "Perfil de administrador de base de datos".

En este caso, cambié el número de secuencia a 2, lo que significa que la cuenta "DB Admin" solo se usará si falla la primera cuenta.

Uso del ID de perfil/cuenta

En este ejemplo, uso los ID de perfil y cuenta en lugar de sus nombres:

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp  
    @profile_id = 1,
    @account_id = 1,
    @sequence_number = 3;

Uso de una combinación de identificación y nombre

Alternativamente, puede proporcionar la identificación de uno y el nombre del otro.

Por ejemplo:

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp 
    @profile_name = 'DB Admin Profile',
    @account_id = 1,
    @sequence_number = 4;

O al revés:

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
    @profile_id = 1,
    @account_name = 'DB Admin',
    @sequence_number = 1;

¿Cómo funciona el número de secuencia?

Puede agregar varias cuentas a un perfil de Correo electrónico de base de datos. El número de secuencia determina el orden en que se utilizan esas cuentas en el perfil al enviar correo. Correo electrónico de base de datos comienza con la cuenta que tiene el número de secuencia más bajo. Si esa cuenta falla, se utiliza la cuenta con el siguiente número de secuencia más alto, y así sucesivamente.

Si existe más de una cuenta con el mismo número de secuencia, el Correo electrónico de base de datos solo usará una de esas cuentas para un mensaje de correo electrónico determinado.

Sin embargo, no hay garantía de que se utilice la misma cuenta para mensajes posteriores. Por ejemplo, si dos cuentas comparten un número de secuencia de 1, es posible que reciba algunos correos electrónicos de una cuenta y algunos de la otra cuenta.

Debo señalar que, según este artículo de Microsoft, cuando envía un nuevo mensaje de correo electrónico, Database Mail en realidad comienza con la última cuenta que envió un mensaje con éxito , o la cuenta que tenga el número de secuencia más bajo si aún no se ha enviado ningún mensaje.

El hecho de que comience con la última cuenta que envió un mensaje con éxito no se menciona en la documentación oficial de sysmail_add_profileaccount_sp o sysmail_update_profileaccount_sp .

De cualquier manera, es algo a tener en cuenta, y podría evitar que se arranque los pelos si su DB Mail parece estar ignorando sus números de secuencia.

Ubicación del procedimiento almacenado

Tenga en cuenta que sysmail_update_profileaccount_sp el procedimiento almacenado está en msdb base de datos, y es propiedad de dbo esquema. Por lo tanto, deberá usar nombres de tres partes si lo ejecuta desde fuera de msdb base de datos.

Cómo devolver información de cuenta y perfil

Los siguientes artículos brindan instrucciones para devolver información de cuenta y perfil.

  • Obtener una lista de cuentas de correo de base de datos en SQL Server
  • Devolver una lista de perfiles de correo de base de datos en SQL Server