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

Sprawdź, ile elementów poczty znajduje się w kolejce w poczcie bazy danych w programie SQL Server (T-SQL)

W SQL Server możesz użyć sysmail_help_queue_sp procedura składowana w msdb bazy danych, aby zobaczyć, ile elementów poczty znajduje się w kolejce, stan kolejki i kiedy była ostatnia aktywowana.

Istnieją dwa typy kolejek:kolejka poczty i kolejka statusu.

Możesz również zwrócić informacje o koncie na podstawie typu kolejki.

Zwróć wszystkie elementy w kolejce

Aby zwrócić wszystkie elementy z kolejki, po prostu wykonaj procedurę składowaną bez żadnych parametrów.

EXEC msdb.dbo.sysmail_help_queue_sp;

Wynik (przy użyciu wyjścia pionowego):

-[ RECORD 1 ]-------------------------
queue_type             | mail
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637
-[ RECORD 2 ]-------------------------
queue_type             | status
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

Wymieniłem wyniki za pomocą wyjścia pionowego, dzięki czemu nie musisz przewijać na boki, aby zobaczyć wszystkie kolumny.

W moim przypadku w kolejce znajdują się dwa elementy poczty, więc zwracane są dwa wiersze.

last_empty_rowset_time kolumna zawiera datę i godzinę, kiedy kolejka była ostatnio pusta.

last_activated_time kolumna zawiera datę i godzinę ostatniej aktywacji kolejki.

Zauważ, że sysmail_help_queue_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 msdb nie jest bieżącą bazą danych.

Filtruj według typu kolejki

Jak wspomniano, istnieją dwa typy kolejek (poczta i status). Możesz również zwrócić elementy na podstawie ich typu kolejki.

Aby to zrobić, podaj @queue_type i określ żądany typ kolejki.

Aby zwrócić wszystkie elementy z poczty kolejka:

EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'mail';

Wynik:

queue_type             | mail
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

Aby zwrócić wszystkie elementy ze stanu kolejka:

EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'status';

Wynik:

queue_type             | status
length                 | 0
state                  | INACTIVE
last_empty_rowset_time | 2020-08-25 22:25:02.637
last_activated_time    | 2020-08-25 22:25:02.637

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SET a SELECT podczas przypisywania zmiennych?

  2. Obcinaj (nie okrągłe) miejsca dziesiętne w SQL Server

  3. Odniesienie do aliasu kolumny w klauzuli WHERE

  4. Zaktualizowałem sterownik ODBC programu SQL Server i negatywnie wpłynęło to na wydajność. Co mogę zrobić?

  5. Jak ustawić opcję maxrecursion dla CTE wewnątrz funkcji Table-Valued-Function?