SQL Server cho phép BEGIN TRANSACTION lồng nhau; biến hệ thống @@TRANCOUNT cho biết đang lồng ở mức mấy. Điều quan trọng: COMMIT chỉ giảm @@TRANCOUNT đi 1, còn ROLLBACK (không kèm tên savepoint) sẽ huỷ toàn bộ và đưa @@TRANCOUNT về 0.
Hãy viết đoạn lệnh in ra một bảng kết quả duy nhất gồm bốn cột là giá trị @@TRANCOUNT tại bốn thời điểm:
BEGIN TRANSACTION thứ nhất.BEGIN TRANSACTION thứ hai.COMMIT một lần.Cuối cùng nhớ COMMIT nốt lần còn lại để không để hở transaction.
Không cần dữ liệu đầu vào. Bảng taikhoan có sẵn nhưng không bắt buộc dùng.
Không.
Một dòng duy nhất gồm bốn số, cách nhau bởi TAB.
Gợi ý: dùng các biến DECLARE @a INT, @b INT, @c INT, @d INT; để ghi lại @@TRANCOUNT tại từng thời điểm, rồi SELECT @a, @b, @c, @d; ở cuối.
Ví dụ:
Đầu vào:
CREATE TABLE taikhoan(id INT, chu_tk NVARCHAR(50), so_du INT);
INSERT INTO taikhoan(id,chu_tk,so_du) VALUES (1,N'An',1000);
Đầu ra:
0 1 2 1
Đang tải editor...