Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution

    Đề bài: [SQL Server] Đếm mức lồng nhau với @@TRANCOUNT

    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:

    1. Trước khi mở transaction nào.
    2. Sau BEGIN TRANSACTION thứ nhất.
    3. Sau BEGIN TRANSACTION thứ hai.
    4. Sau khi COMMIT một lần.

    Cuối cùng nhớ COMMIT nốt lần còn lại để không để hở transaction.

    • Định dạng đầu vào:

      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.

    • Ràng buộc đầu vào:

      Không.

    • Định dạng đầu ra:

      Một dòng duy nhất gồm bốn số, cách nhau bởi TAB.

    Ghi chú:

    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

    Chủ đề

    🗄️ Cơ sở dữ liệuSQL ServerSQL Server: TransactionTất cả môn học

    Đang tải editor...