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