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

Sådan ændres sekvensnummeret for en database-mailkonto i en profil i SQL Server (T-SQL)

Hvis du allerede har tilføjet en Database Mail-konto til en profil, men du nu vil ændre sekvensnummeret, kan du gøre det med sysmail_update_profileaccount_sp gemt procedure.

Når du gør dette, skal du angive navn eller ID på både kontoen og profilen. Det skyldes, at du skal angive præcis hvilken profil/kontotilknytning, du ønsker at opdatere.

Eksempel

Her er et eksempel til demonstration:

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

Dette eksempel ændrer sekvensnummeret for kontoen kaldet "DB Admin" i profilen kaldet "DB Admin Profile".

I dette tilfælde har jeg ændret sekvensnummeret til 2, hvilket betyder, at "DB Admin"-kontoen kun vil blive brugt, hvis den første konto fejler.

Brug af profil/konto-id'erne

I dette eksempel bruger jeg profil- og konto-id'erne i stedet for deres navne:

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

Brug af en kombination af ID og navn

Du kan alternativt oplyse id'et på den ene og navnet på den anden.

For eksempel:

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

Eller omvendt:

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

Hvordan fungerer sekvensnummeret?

Du kan tilføje flere konti til en Database Mail-profil. Sekvensnummeret bestemmer den rækkefølge, som disse konti bruges i profilen, når der sendes mail. Database Mail starter med den konto, der har det laveste sekvensnummer. Hvis den konto fejler, bruges kontoen med det næsthøjeste sekvensnummer, og så videre.

Hvis der findes mere end én konto med det samme sekvensnummer, vil Database Mail kun bruge én af disse konti til en given e-mail-besked.

Der er dog ingen garanti for, at den samme konto vil blive brugt til efterfølgende beskeder. For eksempel, hvis to konti deler et sekvensnummer på 1, modtager du muligvis nogle e-mails fra den ene konto og nogle fra den anden konto.

Jeg skal påpege, at ifølge denne Microsoft-artikel, når du sender en ny e-mail-besked, starter Database Mail faktisk med den sidste konto, der sendte en meddelelse med succes , eller den konto, der har det laveste sekvensnummer, hvis der endnu ikke er sendt nogen besked.

Det faktum, at det starter med den sidste konto, der sendte en besked med succes, er ikke nævnt i den officielle dokumentation for sysmail_add_profileaccount_sp eller sysmail_update_profileaccount_sp .

Uanset hvad, er det noget, du skal være opmærksom på, og det kan redde dig fra at rive dit hår af, hvis din DB Mail ser ud til at ignorere dine sekvensnumre.

Placering af den lagrede procedure

Bemærk, at sysmail_update_profileaccount_sp gemt procedure er i msdb databasen, og den ejes af dbo skema. Derfor skal du bruge tredelt navngivning, hvis du udfører det uden for msdb database.

Sådan returneres konto- og profiloplysninger

Følgende artikler giver instruktioner til returnering af konto- og profiloplysninger.

  • Få en liste over databasepostkonti i SQL Server
  • Returner en liste over databasemail-profiler i SQL Server


  1. Introduktion til PL/SQL-indsamlingsmetoder i Oracle-databasen

  2. Sådan bruges AI til SQL Tuning til en rigtig automatiseret proces

  3. betinget unik begrænsning

  4. Mysql 1050-fejltabel eksisterer allerede, mens den faktisk ikke gør det