GIÁO TRÌNH SQL - TRẦN NGUYÊN PHONG - 7
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
GIÁO TRÌNH SQL - TRẦN NGUYÊN PHONG - 7Simpo PDF Merge and Trường ĐHKH Huế Version - http://www.simpopdf.com Khoa CNTT - Split Unregistered Giáo trình SQL 5.3.3 ROLLBACK TRANSACTION và trigger Một trigger có khả năng nhận biết được sự thay đổi về mặt dữ liệu trên bảng dữ liệu, từ đó có thể phát hiện và huỷ bỏ những thao tác không đảm bảo tính toàn vẹn dữ liệu. Trong một trigger, để huỷ bỏ tác dụng của câu lệnh làm kích hoạt trigger, ta sử dụng câu lệnh(1): ROLLBACK TRANSACTION Ví dụ 5.15: Nếu trên bảng MATHANG, ta tạo một trigger như sau: CREATE TRIGGER trg_mathang_delete ON mathang FOR DELETE AS ROLLBACK TRANSACTION Thì câu lệnh DELETE sẽ không thể có tác dụng đối với bảng MATHANG. Hay nói cách khác, ta không thể xoá được dữ liệu trong bảng. Ví dụ 5.16: Trigger dưới đây được kích hoạt khi câu lệnh INSERT được sử dụng để bổ sung một bản ghi mới cho bảng NHATKYBANHANG. Trong trigger này kiểm tra điều kiện hợp lệ của dữ liệu là số lượng hàng bán ra phải nhỏ hơn hoặc bằng số lượng hàng hiện có. Nếu điều kiện này không thoả mãn thì huỷ bỏ thao tác bổ sung dữ liệu. CREATE TRIGGER trg_nhatkybanhang_insert ON NHATKYBANHANG FOR INSERT AS DECLARE @sl_co int /* Số lượng hàng hiện có */ DECLARE @sl_ban int /* Số lượng hàng được bán */ DECLARE @mahang nvarchar(5) /* Mã hàng được bán */ SELECT @mahang=mahang,@sl_ban=soluong FROM inserted SELECT @sl_co = soluong FROM mathang where mahang=@mahang /*Nếu số lượng hàng hiện có nhỏ hơn số lượng bán thì huỷ bỏ thao tác bổ sung dữ liệu */ (1) Cách sử dụng và ý nghĩa của câu lệnh ROLLBACK TRANSACTION được bàn luận chi tiết ở chương 6. 121 Sưu t m b i: www.daihoc.com.vnSimpo PDF Merge and Trường ĐHKH Huế Version - http://www.simpopdf.com Khoa CNTT - Split Unregistered Giáo trình SQL IF @sl_coSimpo PDF Merge and Trường ĐHKH Huế Version - http://www.simpopdf.com Khoa CNTT - Split Unregistered Giáo trình SQL Trigger dưới đây cập nhật lại số lượng hàng của bảng MATHANG khi câu lệnh UPDATE được sử dụng để cập nhật cột SOLUONG của bảng NHATKYBANHANG. CREATE TRIGGER trg_nhatkybanhang_update_soluong ON nhatkybanhang FOR UPDATE AS IF UPDATE(soluong) UPDATE mathang SET mathang.soluong = mathang.soluong – (inserted.soluong-deleted.soluong) FROM (deleted INNER JOIN inserted ON deleted.stt = inserted.stt) INNER JOIN mathang ON mathang.mahang = deleted.mahang Với trigger được định nghĩa như trên, nếu thực hiện câu lệnh: UPDATE nhatkybanhang SET soluong = soluong + 10 WHERE stt = 1 thì dữ liệu trong hai bảng MATHANG và NHATKYBANHANG sẽ là: Bảng MATHANG Bảng NHATKYBANHANG Tức là số lượng của mặt hàng có mã H1 đã được giảm đi 10. Nhưng nếu thực hiện tiếp câu lệnh: UPDATE nhatkybanhang SET soluong=soluong + 5 WHERE mahang=H2 dữ liệu trong hai bảng sau khi câu lệnh thực hiện xong sẽ như sau: 123 Sưu t m b i: www.daihoc.com.vnSimpo PDF Merge and Trường ĐHKH Huế Version - http://www.simpopdf.com Khoa CNTT - Split Unregistered Giáo trình SQL Bảng MATHANG Bảng NHATKYBANHANG Ta có thể nhận thấy số lượng của mặt hàng có mã H2 còn lại 40 (giảm đi 5) trong khi đúng ra phải là 35 (tức là phải giảm 10). Như vậy, trigger ở trên không hoạt động đúng trong trường hợp này. Để khắc phục lỗi gặp phải như trên, ta định nghĩa lại trigger như sau: CREATE TRIGGER trg_nhatkybanhang_update_soluong ON nhatkybanhang FOR UPDATE AS IF UPDATE(soluong) UPDATE mathang SET mathang.soluo ...
Tìm kiếm theo từ khóa liên quan:
giáo trình công nghệ thông tin giáo trình đại học thị trường bất động sản kiến thức tin học định giá đất đai thị trường nhà ởTài liệu cùng danh mục:
-
62 trang 388 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 371 6 0 -
Bài giảng Phân tích thiết kế hệ thống thông tin: Chương 3 - Hệ điều hành Windowns XP
39 trang 318 0 0 -
Phương pháp truyền dữ liệu giữa hai điện thoại thông minh qua môi trường ánh sáng nhìn thấy
6 trang 307 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 299 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 288 1 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 279 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 276 2 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 265 0 0 -
Một số vấn đề về chuyển đổi số và ứng dụng trong doanh nghiệp
11 trang 247 0 0
Tài liệu mới:
-
Đề thi thử tốt nghiệp THPT năm 2021 môn GDCD có đáp án - Trường THPT Hai Bà Trưng
6 trang 0 0 0 -
Đề thi học kì 1 môn GDCD lớp 11 năm 2021-2022 có đáp án - Sở GD&ĐT Bắc Ninh
3 trang 0 0 0 -
Đề khảo sát chất lượng môn GDCD năm 2020-2021 - Sở GD&ĐT Nghệ An - Mã đề 314
4 trang 0 0 0 -
Quyết định số 39/2012/QĐ-UBND
7 trang 1 0 0 -
Nghị quyết số 86/2017/NQ-HĐND Tỉnh Hà Giang
4 trang 0 0 0 -
30 trang 0 0 0
-
23 trang 1 0 0
-
22 trang 1 0 0
-
22 trang 1 0 0
-
Đề thi học kì 1 môn Toán lớp 2 năm 2021-2022 có đáp án - Trường Tiểu học Song Phượng
3 trang 0 0 0