Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Bài giảng Cơ sở dữ liệu - Bài 9: Trigger trình bày các khái niệm Trigger là gì, phân loại Trigger, các bảng dữ liệu trung gian, làm việc với Trigger, Trigger lồng nhau,. nội dung chi tiết. | Khái niệm n Bài 9: Trigger 2/8/2018 Microsoft SQL Server 2005 1 Trigger là gì: Là một thủ tục nội tại đặc biệt không có tham số Gắn liền với bảng/bảng ảo trong CSDL. Khi xóa bảng dữ liệu thì các Trigger của bảng sẽ bị xóa Không thể gọi thực thi bằng lệnh Execute hay bất kỳ một lệnh nào khác, mà được gọi một cách tự động khi có biến cố được thực thi trong cơ sở dữ liệu (tại bảng liên kết với nó) Hoạt động theo cơ chế giao tác: Khi không muốn lưu lại các thao tác cập nhật trước đó có thể sử dụng Rollback Transaction 2/8/2018 Khái niệm n n - - Microsoft SQL Server 2005 2 Phân loại Trigger Hạn chế của Trigger: Trong cú pháp của Trigger, không sử dụng các cú pháp làm thay đổi cấu trúc của cơ sở dữ liệu: Create, Alter, Drop 2/8/2018 Microsoft SQL Server 2005 3 Các Trigger được phân làm 2 loại Loại After: gồm + DML Trigger: kiểm soát sự thay đổi dữ liệu + DDL Trigger: kiểm soát sự thay đổi cấu trúc của cơ sở dữ liệu Loại Instead of (hay Before) 2/8/2018 Microsoft SQL Server 2005 4 1 Các bảng dữ liệu trung gian Làm việc với Trigger Bảng Inserted: Lưu các dòng dữ liệu được thêm mới trong các hành động Insert/Update n Bảng dữ liệu Deleted: Lưu các dòng dữ liệu bị xóa bởi các lệnh Delete n Đặc điểm: Cấu trúc giống với cấu trúc bảng dữ liệu thực sự được cập nhật dữ liệu Chỉ tồn tại trong Ram Không thể tham chiếu trực tiếp trong các thủ tục nội tại thông thường Tạo mới một Trigger: Nhập cú pháp tạo mới Trigger vào màn hình Query Create Trigger Tên_Trigger on Tên_bảng/bảng_ảo For/Instead of/After Insert, [Update], [Delete] As Các_lệnh Lưu ý: Tên Trigger là duy nhất trong CSDL n n 2/8/2018 Microsoft SQL Server 2005 5 2/8/2018 Ví dụ: Microsoft SQL Server 2005 6 Làm việc với Trigger Yêu cầu: Tạo thêm cột Thanhtien cho bảng CTPNHAP, sau đó tạo trigger cập nhật giá trị tự động cho cột Thanhtien Xét lời giải sau: Create Trigger Capnhat_Thanhtien on CTPNHAP For Insert, Update As Declare @MaVTu char(4), @SoPn char(4) Select @MaVTu = MaVTu, .