Dùng các hàm lỗi trong TRY...CATCH lồng nhau
Bạn vừa nhận về một số xe đạp điện mới cho cửa hàng, nên cần cập nhật tồn kho.
Bạn muốn ghi nhận đã nhận 2 chiếc Trek Powerfly 5 - 2018 với giá $3499.99 mỗi chiếc, và 3 chiếc New Power K- 2018 với giá $1999.99 mỗi chiếc.
Bạn thử chèn các sản phẩm vào cơ sở dữ liệu vì nghĩ đây là các mẫu mới. Tuy nhiên, bạn quên rằng mẫu đầu tiên đã có sẵn trong kho. May mắn là bảng products có một ràng buộc yêu cầu tên mỗi sản phẩm phải là duy nhất.
Bạn chuẩn bị một script để kiểm soát các lỗi có thể xảy ra khi chèn. Bạn cũng muốn ghi lại lỗi (nếu có) vào bảng errors, và nếu việc chèn lỗi này thất bại, hãy hiển thị số lỗi và thông điệp lỗi.
Bài tập này là một phần của khóa học
Giao dịch và Xử lý lỗi trong SQL Server
Hướng dẫn bài tập
- Bao quanh phần xử lý lỗi bằng một khối
CATCH. - Chèn
'Error inserting a product'vào bảngerrorsvà bao quanh thao tác chèn này bằng một khốiTRYkhác. - Bao quanh phần xử lý lỗi lồng nhau bằng một khối
CATCHkhác. - Trong khối
CATCHbên trong, chọn dòng lỗi và thông điệp lỗi.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
BEGIN TRY
INSERT INTO products (product_name, stock, price)
VALUES ('Trek Powerfly 5 - 2018', 2, 3499.99),
('New Power K- 2018', 3, 1999.99)
END TRY
-- Set up the outer CATCH block
___ ___
SELECT 'An error occurred inserting the product!';
-- Set up the inner TRY block
___ ___
-- Insert the error
INSERT INTO ___
VALUES ('Error inserting a product');
___ ___
-- Set up the inner CATCH block
___ ___
-- Show number and message error
SELECT
___ AS line,
___ AS message;
___ ___
___ ___