Phát biểu RAISERROR dùng xuất thông báo lỗi lấy từ table sysmessages hoặc một thông báo với nội dung nào đó.
RAISERROR ( { msg_id | msg_str } { , severity , state } [ , argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
Arguments:
- msg_id: Mã số > 50000 của dòng thông báo do người dùng tạo trên table sysmessages bằng thủ tục sp_AddMessage.
- msg_str: Nội dung thông báo lỗi cần xuất
- severity: Mã số chỉ định mức độ nghiêm trọng của lỗi
Mức độ từ 0 - 19 được xem như là thông tin phản hồi. Mức từ 0 - 16: lỗi phát sinh do dữ liệu. Mức 10 là lỗi báo cáo trạng thái. Mức từ 11 - 16 là những lỗi có thể được hiệu chỉnh bởi user.
Mức từ 20 - 25 chỉ định các lỗi có hại từ ứng dụng không thể phục hồi. Nếu thông báo mức này, kết nối từ client đến server sẽ bị ngắt.
- State: là số nguyên từ 1 đến 127 biểu diễn thông tin về trạng thái thỉnh cầu của lỗi, nhằm chỉ rõ lỗi thuộc nhóm nào trong hệ thống lỗi. Giá trị phủ nhận của state là 1
- Argument: Là tham số dùng thay thế vào những biến được sử dụng trong chuỗi msg_str hoặc thông báo tương ứng với msg_id. Mỗi tham số thay thế có thể là 1 biến cục bộ hoặc giá trị thuộc kiểu: int1, int2, int4, char, varchar, binary, or varbinary.
RAISERROR ('The level for job_id:%d should be between %d and %d.',
16, 1, @@JOB_ID, @@MIN_LVL, @@MAX_LVL)
- Option: có thể chứa các giá trị sau:
Value Description
LOG: Ghi lỗi vào file nhật ký.
NOWAIT: Gởi thông báo ngay lập tức đến client.
SETERROR: Đặt giá trị msg_id hay 50000 cho hàm @@ERROR.
Ví dụ: RAISERROR('Invalid member number', 10, 1) WITH LOG
Khi xuất hiện lỗi, mã lỗi được đặt trong hàm @@ERROR. Mặc định @@ERROR được đặt bằng 0 cho các lỗi có severity từ 1 đến 10.