a. Bắt đầu một transaction
Cú pháp : BEGIN TRAN[SACTION] [transaction_name]
Có thể không cần đọc tên transaction. Tuy nhiên nên đặt tên transaction để 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í transaction
Syntax: SAVE TRAN[SACTION] <save_name>
d. Kết thúc không thành công một transaction
Cú pháp: ROLLBACK TRAN[SACTION] [transaction_name] | [save_name]
Khi gặp lệnh này, tất cả các lệnh được thực thi trong transaction bắt đầu từ Begin Tran hoặc từ vị trí đánh dấu trong transaction sẽ bị bãi bỏ
Ví dụ: Tạo SP thêm một sinh viên mới vào trong 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 chỉ 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