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

    Đề bài: [SQL Server] Savepoint giữ lại một phần thay đổi

    Bảng taikhoan(id, chu_tk, so_du).

    Trong một transaction, hãy làm lần lượt:

    1. Cộng 100 vào tài khoản id = 1.
    2. Đặt một savepoint tên sp1.
    3. Cộng 999 vào tài khoản id = 2.
    4. ROLLBACK về savepoint sp1 — huỷ bước 3 nhưng giữ bước 1.
    5. COMMIT transaction.

    Sau đó in id và so_du của tất cả tài khoản sắp xếp theo id.

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

      Bảng taikhoan đã được tạo sẵn. Cột: id INT, chu_tk NVARCHAR(50), so_du INT. Luôn tồn tại tài khoản id = 1 và id = 2.

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

      Số tài khoản ≤1000\le 1000≤1000.

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

      Mỗi dòng gồm id và so_du, cách nhau bởi TAB. Tài khoản 1 được cộng 100, tài khoản 2 giữ nguyên.

    Ghi chú:

    Cú pháp: SAVE TRANSACTION sp1; để đặt điểm lưu và ROLLBACK TRANSACTION sp1; để quay về đó. Lưu ý ROLLBACK về savepoint không kết thúc transaction — vẫn phải COMMIT.

    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),(2,N'Binh',500);

    Đầu ra:

    1	1100
    2	500

    Chủ đề

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

    Đang tải editor...