Tôi đã đọc về xử lý lỗi trong SQL Server trong this article và họ đề xuất sử dụng GOTO của SQL Server trong một số trường hợp nhất định để quay lại giao dịch. Ví dụ:Thực hành không tốt để sử dụng GOTO của SQL Server để xử lý lỗi?
BEGIN TRAN
UPDATE Authors
SET Phone = '415 354-9866'
WHERE au_id = '724-80-9391'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
UPDATE Publishers
SET city = 'Calcutta', country = 'India'
WHERE pub_id = '9999'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
END
Bài viết này được viết gần 10 năm trước và tôi đã nghe nói rằng sử dụng GOTO thường là một ý tưởng tồi. Ở trên là một phương pháp ok để xử lý lỗi trong SQL Server? Nếu không, bất cứ ai có thể đề xuất một lựa chọn tốt hơn?
Bạn đã kiểm tra này [trả lời] (http://stackoverflow.com/a/ 11153012/1451723)? – Pankaj