Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zmienić numer sekwencyjny konta pocztowego bazy danych w profilu w programie SQL Server (T-SQL)

Jeśli dodałeś już konto poczty bazy danych do profilu, ale chcesz teraz zmienić numer sekwencyjny, możesz to zrobić za pomocą sysmail_update_profileaccount_sp procedura składowana.

Robiąc to, musisz podać nazwę lub identyfikator zarówno konta, jak i profilu. Dzieje się tak, ponieważ musisz dokładnie określić, które powiązanie profilu/konta chcesz zaktualizować.

Przykład

Oto przykład do zademonstrowania:

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

Ten przykład zmienia numer sekwencyjny konta o nazwie „DB Admin” w profilu o nazwie „Profil administratora DB”.

W tym przypadku zmieniłem numer sekwencji na 2, co oznacza, że ​​konto „DB Admin” będzie używane tylko wtedy, gdy pierwsze konto ulegnie awarii.

Korzystanie z identyfikatorów profilu/konta

W tym przykładzie używam identyfikatorów profili i kont zamiast ich nazw:

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

Korzystanie z kombinacji identyfikatora i nazwy

Alternatywnie możesz podać identyfikator jednego i nazwę drugiego.

Na przykład:

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

Lub odwrotnie:

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

Jak działa numer sekwencyjny?

Do profilu poczty bazy danych można dodać wiele kont. Numer kolejny określa kolejność, w jakiej te konta są używane w profilu podczas wysyłania poczty. Poczta bazy danych rozpoczyna się od konta o najniższym numerze sekwencyjnym. Jeśli to konto ulegnie awarii, używane jest konto o kolejnym najwyższym numerze sekwencyjnym i tak dalej.

Jeśli istnieje więcej niż jedno konto o tym samym numerze sekwencyjnym, poczta bazy danych użyje tylko jednego z tych kont dla danej wiadomości e-mail.

Nie ma jednak gwarancji, że to samo konto będzie używane do kolejnych wiadomości. Na przykład, jeśli dwa konta mają wspólny numer porządkowy 1, możesz otrzymać niektóre e-maile z jednego konta, a niektóre z drugiego.

Powinienem zauważyć, że zgodnie z tym artykułem Microsoft, kiedy wysyłasz nową wiadomość e-mail, poczta bazy danych faktycznie rozpoczyna się od ostatniego konta, które pomyślnie wysłało wiadomość , lub konto o najniższym numerze sekwencyjnym, jeśli żadna wiadomość nie została jeszcze wysłana.

Fakt, że zaczyna się od ostatniego konta, które pomyślnie wysłało wiadomość, nie jest wspomniany w oficjalnej dokumentacji sysmail_add_profileaccount_sp lub sysmail_update_profileaccount_sp .

Tak czy inaczej, jest to coś, o czym należy pamiętać i może uchronić Cię przed wyrywaniem włosów, jeśli Twoja poczta DB wydaje się ignorować Twoje numery sekwencyjne.

Lokalizacja procedury składowanej

Zwróć uwagę, że sysmail_update_profileaccount_sp procedura składowana znajduje się w msdb bazy danych i jest własnością dbo schemat. Dlatego będziesz musiał użyć trzyczęściowego nazewnictwa, jeśli wykonasz je spoza msdb baza danych.

Jak zwrócić informacje o koncie i profilu

Poniższe artykuły zawierają instrukcje dotyczące zwracania informacji o koncie i profilu.

  • Uzyskaj listę kont pocztowych bazy danych w SQL Server
  • Zwróć listę profili poczty bazy danych w SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Query - mnożenie grupowe

  2. Przestań zmuszać SQL Server do brudnej roboty

  3. Jaka jest domyślna nazwa ograniczenia w programie SQL Server?

  4. Jak wstawić tabelę danych do tabeli bazy danych SQL Server?

  5. Konfigurowanie lokalnej bazy danych SQL Server