Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Verificar quantos itens de email estão na fila do Database Mail no SQL Server (T-SQL)


No SQL Server, você pode usar o sysmail_help_queue_sp procedimento armazenado no msdb banco de dados para ver quantos itens de correio estão na fila, o status da fila e quando foi ativado pela última vez.

Existem dois tipos de fila:a fila de correio e a fila de status.

Você também pode retornar informações da conta com base no tipo de fila.

Retornar todos os itens na fila


Para retornar todos os itens da fila, basta executar o procedimento armazenado sem nenhum parâmetro.
EXEC msdb.dbo.sysmail_help_queue_sp;

Resultado (usando saída vertical):
-[ 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

Listei os resultados usando a saída vertical para que você não precise rolar para os lados para ver todas as colunas.

No meu caso, há dois itens de correio na fila e, portanto, duas linhas são retornadas.

O last_empty_rowset_time A coluna fornece a data e hora em que a fila esteve vazia pela última vez.

O last_activated_time coluna fornece a data e hora em que a fila foi ativada pela última vez.

Observe que o sysmail_help_queue_sp procedimento armazenado está no msdb banco de dados e é de propriedade do dbo esquema. Portanto, você precisará usar a nomenclatura de três partes se msdb não é o banco de dados atual.

Filtrar por tipo de fila


Conforme mencionado, existem dois tipos de filas (correio e status). Você também pode devolver itens com base em seu tipo de fila.

Para fazer isso, forneça o @queue_type parâmetro e especifique o tipo de fila desejado.

Para devolver todos os itens do mail fila:
EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'mail';

Resultado:
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

Para retornar todos os itens do status fila:
EXEC msdb.dbo.sysmail_help_queue_sp
    @queue_type = 'status';

Resultado:
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