a. Bắt đầu một transaction
Cú pháp: BEGIN TRAN[SACTION] [transaction_name]
Có thể không cần đặt tên Transaction. Tuy nhiên nên đặt tên để dễ đọc
b. Xác nhận kết thúc thành công một Transaction
Cú pháp: COMMIT TRAN[SACTION] [transaction_name]
c. Đánh dấu vị trí trong Transaction
Lưu vị trí chuyển tác
Cú pháp: SAVE TRAN[SACTION] <save_name>
d. Kết thúc không thành công một chuyển tác
Khi gặp lệnh này, tất cả những lệnh được thực hiện trong transaction bắt đầu từ lệnh Begin tran hoặc từ vị trí đánh dấu trong transaction sẽ bị bãi bỏ.
Cú pháp: ROLLBACK TRAN[SACTION] [transaction_name] | [save_name]
Ví dụ: Tạo SP thêm một sinh viên mới vào bảng Sinhvien và thêm vào bảng SV_Detai MSDT mà sinh viên thực hiện.
Nếu MSDT không tồn tại thì bỏ thao tác chèn mẫu tin mới cho bảng SV_Detai
CREATE PROCEDURE ThemSVDT
@MSDT Char(6), @MSSV char(6),
@TenSV VarChar(30), @Lop char(6),
@SoDT VarChar(10)= NULL, @DiaChi Char(10)=NULL
AS
BEGIN TRANSACTION VT1
INSERT SinhVien (MSSV,TenSV,SoDT, Lop, DiaChi)
VALUES (@MSSV, @TenSV, @SoDT, @Lop, @DiaChi)
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN VT1
RETURN 0
END
SAVE TRAN VT2
INSERT SV_DETAI(MSSV, MSDT)
VALUES (@MSSV, @MSDT )
IF (@@ERROR <> 0) ROLLBACK TRAN VT2
COMMIT TRANSACTION VT1
GO