Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come modificare il numero di sequenza di un account di posta elettronica database all'interno di un profilo in SQL Server (T-SQL)

Se hai già aggiunto un account Posta database a un profilo, ma ora desideri modificare il numero di sequenza, puoi farlo con sysmail_update_profileaccount_sp procedura memorizzata.

Quando si esegue questa operazione, è necessario fornire il nome o l'ID sia dell'account che del profilo. Questo perché è necessario specificare esattamente quale associazione profilo/account si desidera aggiornare.

Esempio

Ecco un esempio da dimostrare:

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

Questo esempio cambia il numero di sequenza per l'account chiamato "DB Admin" all'interno del profilo chiamato "DB Admin Profile".

In questo caso, ho modificato il numero di sequenza in 2, il che significa che l'account "DB Admin" verrà utilizzato solo se il primo account non riesce.

Utilizzo degli ID profilo/account

In questo esempio utilizzo il profilo e gli ID account invece dei loro nomi:

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

Utilizzo di una combinazione di ID e nome

In alternativa puoi fornire l'ID di uno e il nome dell'altro.

Ad esempio:

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

O viceversa:

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

Come funziona il numero di sequenza?

È possibile aggiungere più account a un profilo di posta elettronica database. Il numero di sequenza determina l'ordine in cui tali account vengono utilizzati nel profilo durante l'invio di posta. Posta elettronica database inizia con l'account con il numero di sequenza più basso. Se l'account non riesce, viene utilizzato l'account con il numero di sequenza successivo più alto e così via.

Se esistono più account con lo stesso numero di sequenza, Posta elettronica database utilizzerà solo uno di quegli account per un determinato messaggio di posta elettronica.

Tuttavia, non vi è alcuna garanzia che lo stesso account verrà utilizzato per i messaggi successivi. Ad esempio, se due account condividono un numero di sequenza pari a 1, potresti ricevere alcune email da un account e altre dall'altro.

Devo sottolineare che, secondo questo articolo Microsoft, quando invii un nuovo messaggio di posta elettronica, Posta database in realtà inizia con l'ultimo account che ha inviato un messaggio correttamente o l'account con il numero di sequenza più basso se non è stato ancora inviato alcun messaggio.

Il fatto che inizi con l'ultimo account che ha inviato un messaggio con successo non è menzionato nella documentazione ufficiale per sysmail_add_profileaccount_sp o sysmail_update_profileaccount_sp .

In ogni caso, è qualcosa di cui essere consapevoli e potrebbe evitarti di strapparti i capelli se il tuo DB Mail sembra ignorare i tuoi numeri di sequenza.

Posizione della stored procedure

Nota che il sysmail_update_profileaccount_sp la procedura memorizzata si trova in msdb database ed è di proprietà del dbo schema. Pertanto, dovrai utilizzare la denominazione in tre parti se la esegui dall'esterno di msdb banca dati.

Come restituire le informazioni sull'account e sul profilo

I seguenti articoli forniscono istruzioni per restituire informazioni sull'account e sul profilo.

  • Ottieni un elenco di account di posta elettronica database in SQL Server
  • Restituire un elenco di profili di posta elettronica database in SQL Server