Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kiểm tra có bao nhiêu mục thư trong hàng đợi trong thư cơ sở dữ liệu trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể sử dụng sysmail_help_queue_sp thủ tục được lưu trữ trên msdb cơ sở dữ liệu để xem có bao nhiêu mục thư trong hàng đợi, trạng thái của hàng đợi và thời điểm nó được kích hoạt lần cuối.

Có hai loại hàng đợi:hàng đợi thư và hàng đợi trạng thái.

Bạn cũng có thể trả lại thông tin tài khoản dựa trên loại hàng đợi.

Trả lại tất cả các mục trong hàng đợi

Để trả lại tất cả các mục từ hàng đợi, chỉ cần thực hiện thủ tục đã lưu trữ mà không có bất kỳ tham số nào.

EXEC msdb.dbo.sysmail_help_queue_sp;

Kết quả (sử dụng đầu ra dọc):

-[ 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

Tôi đã liệt kê các kết quả bằng cách sử dụng đầu ra dọc để bạn không phải cuộn sang ngang để xem tất cả các cột.

Trong trường hợp của tôi, có hai mục thư trong hàng đợi và do đó hai hàng được trả về.

last_empty_rowset_time cột cung cấp ngày và giờ mà hàng đợi trống lần cuối.

last_activated_time cột cung cấp ngày và giờ hàng đợi được kích hoạt lần cuối.

Lưu ý rằng sysmail_help_queue_sp thủ tục được lưu trữ trong msdb cơ sở dữ liệu và thuộc sở hữu của dbo lược đồ. Do đó, bạn sẽ cần sử dụng cách đặt tên gồm ba phần if msdb không phải là cơ sở dữ liệu hiện tại.

Lọc theo loại hàng đợi

Như đã đề cập, có hai loại hàng đợi (thư và trạng thái). Bạn cũng có thể trả lại các mặt hàng dựa trên loại hàng đợi của chúng.

Để thực hiện việc này, hãy cung cấp @queue_type và chỉ định loại hàng đợi mong muốn của bạn.

Để trả lại tất cả các mục từ thư hàng đợi:

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

Kết quả:

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

Để trả lại tất cả các mục từ trạng thái hàng đợi:

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

Kết quả:

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. Cách tạo Ràng buộc khóa ngoại trên nhiều cột trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 67

  2. Cách thay đổi bảng trong SQL Server bằng cách sử dụng câu lệnh thay thế - Hướng dẫn SQL Server / T-SQL Phần 35

  3. Cách chọn JSON lồng nhau trong SQL Server với OPENJSON

  4. Thay đổi chênh lệch múi giờ trên giá trị datetimeoffset trong SQL Server (T-SQL)

  5. Trả lại các hàng theo thứ tự chính xác mà chúng đã được chèn