Cách thích hợp để kiểm tra lỗi chèn/cập nhật là gì và khôi phục giao dịch này nếu có? Tôi không nghĩ rằng những gì tôi có sẽ làm việc kể từ khi chèn/cập nhật của tôi là 3 báo cáo riêng biệt và @@ ROWCOUNT sẽ chỉ phản ánh tuyên bố cuối cùng được thực hiện.Cách thích hợp để sử dụng giao dịch xung quanh nhiều lần chèn hoặc cập nhật
BEGIN TRANSACTION Script;
GO
INSERT INTO TableA (id) VALUES (1)
INSERT INTO TableB (id) VALUES (1)
UPDATE TableC SET id=1 WHERE id=2
GO
IF (@@ROWCOUNT=3 AND @@ERROR=0)
BEGIN
COMMIT
END
ELSE
BEGIN
PRINT 'Error: Rolling back transaction'
ROLLBACK TRANSACTION Script
END
GO
Điều này hạn chế cho tôi từ in một thông báo lỗi, phải không? –
@JoePhilllips vui lòng kiểm tra câu trả lời cập nhật của tôi. –
thuộc tính SET XACT_ABORT ON có làm tăng thông báo lỗi khi giao dịch quay lại không? – Raza