SlideShare a Scribd company logo
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM
Khoa Hệ Thống Thông Tin Tên môn học: Cơ sở dữ liệu
I. TÓM TẮT BÀI THỰC HÀNH
Yêu cầu lý thuyết
Sinh viên đã được trang bị kiến thức:
- Ràng buộc toàn vẹn..
Nội dung
- Xây dựng được các câu RBTV bằng Trigger
II. HƯỚNG DÂN TRIGGER:
1. Giới thiệu Trigger:
- Trigger là một kỹ thuật lập trình đặc biệt trong SQL, dùng để thực hiện các loại ràng buộc toàn vẹn có
tính phức tạp, nó sẽ có hiệu lực khi chúng ta thay đổi dữ liệu trên một bảng dữ liệu cụ thể hoặc các lệnh xử lí
làm thay đổi dữ liệu của các lênh: insert, update, delete. Trong trigger có thể chừa các lệnh truy vấn từ các
bảng khác hoặc bao gồm những lệnh truy vấn phức tạp.
- Trigger chạy một cách tự động: chúng được kích hoạt ngay tức thì khi có sự thay đổi dữ liệu trên bảng dữ
liệu.
2. Cú pháp:
2.1. Lệnh tạo trigger:
Create Trigger trigger_name on table_name
For [insert,update,delete]
As
Begin
Khai báo các xử lí
End
Lưu ý: trigger sau khi đã tạo, để chỉnh sửa nội dung các khai báo xử lí thì ta thay từ khóa Create bằng từ
khóa Alter => sau đó cho thực thi lai trigger (bôi đen nhấn F5) thì nội dung đó mới có hiệu lực
2.2. Lệnh xóa trigger:
Drop Trigger trigger_name
Lưu ý: trường hợp thi chỉ muốn ngưng kiểm tra trigger thì ta sử dụng lệnh sau:
Alter table table_name Disable/Enable Trigger trigger_name
Hoặc Alter table table_name Disable/Enable Trigger ALL
3. Một số thao tác liên quan đến trigger:
3.1. Thao tác dữ liệu:
_Khi người dùng thực hiện thao tác insert dữ liệu vào trong các quan hệ thì hệ thống sẽ tự động tạo ra
bảng tạm với tên INSERTED có cấu trúc tương tự như bảng dữ liệu mà ta muốn insert dữ liệu vào.
_Khi người dùng thực hiện thao tác delete dữ liệu các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm
với tên DELETED có cấu trúc tương tự như bảng dữ liệu mà ta muốn delete dữ liệu..
_Khi người dùng thực hiện thao tác update dữ liệu các quan hệ thì hệ thống sẽ thực hiện 2 thao tác sau:
 Tạo ra bảng DELETED để chứa dữ liệu cũ
 Tạo ra bảng INSERTED để chứa dữ liệu mới
3.2. Thao tác lập trình:
- Sinh viên tham khảo Book Online về:
+ Khai báo biến: DECLARE
+ Xuat thong tin: PRINT,RAISE
+ Cấu trúc điều kiện: IF
+ Cấu trúc lặp: FOR
+ Con trỏ: CURSOR
+ Hủy cập nhật dữ liệu vào hệ thống bộ nhớ: ROLLBACK TRAN
III. BÀI TẬP YÊU CẦU:
Bài 1. Sinh viên làm quen với việc cài đặt trigger cho các RBTV cơ bản sau:
a) Khi thêm một khách hành thì hiển thị thông báo “Khach hang da them thanh cong”
b) Khi thêm 1 hoá đơn thì hiển thị thông báo “Hoá đơn của khách hàng <Họ tên khách hàng> đã được
thêm thành công”
c) Khi xoá một CTHD thì hiển thị thông báo “CTHD của <SoHD> đã bị xoá”
d) Khi chỉnh sửa tên sản phẩm của một sản phẩm thì cho biết sản phẩm đó của nước nào sản xuất
Hướng dẫn câu a:
CREATE TRIGGER trg_Bai1a ON KHACHHANG
FOR INSERT
AS
BEGIN
Print ‘Khach hang da them thanh cong’
END
Kiểm tra lại trigger có hoạt động?
INSERT INTO KHACHHANG(MAKH) VALUES(‘KH50’)
Hướng dẫn câu b:
CREATE TRIGGER trg_ Kiemtra_NhapHD ON HOADON
FOR INSERT
AS
BEGIN
-- Dùng từ khoá để khai báo biến
DECLARE @MAKH CHAR(4)
DECLARE @HOTEN VARCHAR(40)
--------------------------------
SELECT @MAKH=MAKH FROM INSERTED
SELECT @HOTEN=HOTEN FROM KHACHHANG
WHERE MAKH=@MAKH
PRINT 'Hoa don cua khach hang '+@HOTEN+' da duoc them thanh cong'
END
Bài 2. Sinh viên hoàn thành Phần I bài tập Quanlibanhang (từ câu 11 đến câu 15)
Hướng dẫn câu 11: Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc
bằng ngày khách hàng đó đăng ký thành viên (NGDK).
Các bước để giải một câu RBTV phức tạp:
- Xác định bối cảnh: KHACHHANG, HOADON
- Xác định bảng tầm ảnh hưởng:
+ Dấu “+” cho biết khi ta thao tác dữ liệu sẽ bị vi phạm
+ Dấu “-” cho biết khi ta thao tác dữ liệu không bị vi phạm
Thêm Xóa Sửa
KHACHHANG - - +(NGDK)
HOADON + - +(NGHD)
- Thực hiện cài đặt trigger tại những ô có dấu “+”
-- Khi thêm 1 HD sẽ vi phạm RBTV
-- Cách 1:
CREATE TRIGGER trg01_ins_HOADON ON HOADON
FOR INSERT
AS
BEGIN
-- Khai bao bien de chua du lieu tu bang INSERTED ( bang nay co cau truc tuong
tu bang HOADON) khi ta them du lieu vao bang HOADON
DECLARE @MAKH varchar(4);
DECLARE @NGHD smalldatetime;
SELECT @MAKH=MAKH,@NGHD=NGHD FROM INSERTED
-- Khai bao bien de chua du lieu tu bang KHACHHANG
DECLARE @NGDK smalldatetime;
SELECT @NGDK=NGDK FROM KHACHHANG
WHERE MAKH=@MAKH
IF (@NGDK>@NGHD)
BEGIN
PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’
ROLLBACK TRAN
END
ELSE
BEGIN
PRINT ‘HOA DON DA THEM THANH CONG’
END
END
--------------------------------------
-- Cách 2:
CREATE TRIGGER trg01_ins_HOADON ON HOADON
FOR INSERT
AS
BEGIN
IF (SELECT COUNT(*) FROM KHACHHANG K,INSERTED I
WHERE K.MAKH=I.MAKH
AND K.NGDK>I.NGHD)>0
BEGIN
PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’
ROLLBACK TRAN
END
ELSE
BEGIN
PRINT ‘HOA DON DA THEM THANH CONG’
END
END
Cài đặt tương tự cho các dấu cộg còn lại.
IV. BÀI TẬP MỞ RỘNG:
Bài 3. Sinh viên hoàn thành bài tập Quanligiaovu

More Related Content

PDF
Giáo trình mạng máy tính PTIT
DOC
Đề tài: Thiết kế hệ thống mạng cho một công ty, HOT, 9đ
PDF
Dinh tuyen va_cac_giao_thuc_dinh_tuyen
PDF
Slide he dieu hanh
PDF
Bai tap va loi giai sql
 
PPT
Xây dựng website tìm kiếm phòng trọ trực tuyến
PDF
3.1. thiết kế mạng cục bộ
PDF
đề thi java ptit
Giáo trình mạng máy tính PTIT
Đề tài: Thiết kế hệ thống mạng cho một công ty, HOT, 9đ
Dinh tuyen va_cac_giao_thuc_dinh_tuyen
Slide he dieu hanh
Bai tap va loi giai sql
 
Xây dựng website tìm kiếm phòng trọ trực tuyến
3.1. thiết kế mạng cục bộ
đề thi java ptit

What's hot (20)

DOC
Đề tài: Thiết kế hệ thống mạng máy tính, HAY, 9đ - tải qua zalo=> 0909232620
DOCX
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
DOC
Bai tap chia_dia_chi_ip
PPTX
Hệ thống quản lý bán hàng online
PPT
Chuong 2 - CSDL phân tán
DOCX
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
PDF
Bài tập thiết kế cơ sở dữ liệu
DOC
Xây dựng hệ thống mạng cho Công Ty Cổ Phần Trường Tân trên nền tảng server 2008
PPTX
Tổng quan về an toàn và bảo mật thông tin
DOC
Xây dựng biểu đồ use case
DOCX
Chia subnetmask
PDF
Huong dan thi nghiem wireshark
DOC
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
PDF
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
DOCX
Ngân hàng câu hỏi trắc nghiệm kiến trúc máy tính
PDF
Hệ điều hành (chương 4)
PDF
91684060 356-cau-trắc-nghiệm-csdl-2
PDF
Cơ sở dữ liệu PTIT slide 2
PDF
Hệ điều hành (chương 5)
DOCX
Hệ mật mã elgamal
Đề tài: Thiết kế hệ thống mạng máy tính, HAY, 9đ - tải qua zalo=> 0909232620
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Bai tap chia_dia_chi_ip
Hệ thống quản lý bán hàng online
Chuong 2 - CSDL phân tán
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Bài tập thiết kế cơ sở dữ liệu
Xây dựng hệ thống mạng cho Công Ty Cổ Phần Trường Tân trên nền tảng server 2008
Tổng quan về an toàn và bảo mật thông tin
Xây dựng biểu đồ use case
Chia subnetmask
Huong dan thi nghiem wireshark
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Ngân hàng câu hỏi trắc nghiệm kiến trúc máy tính
Hệ điều hành (chương 4)
91684060 356-cau-trắc-nghiệm-csdl-2
Cơ sở dữ liệu PTIT slide 2
Hệ điều hành (chương 5)
Hệ mật mã elgamal
Ad

Similar to csdl-trigger (20)

PDF
b5-Trigger_h-HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
PDF
C5.SQLTriggerchuowng5dskahskaldjsdsaldkl.pdf
PPTX
Slide_Bai_Giang_Pjmjjmjjjmjjjjhan_2.pptx
PPT
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
PDF
b2-ddl-create-190213084659.pdf
DOC
New microsoft word document
PDF
B2 - DDL - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
PDF
Csdl61
PPTX
Trigger, Cursor, Function in SQL Server
PPT
slide_Chuong 3_ (1).ppt
PDF
Bai tap-thuc-hanh-he-quan-tri-csdl
PDF
Chuong 4 - SQL - University of Information Technology.pdf
PPTX
Cơ sở dữ liệu suy diễn. CSDL ACTIVE.pptx
PDF
Giao trinh sql server 2005
PPT
07 trigger view
PPTX
ORACLE_ch2_SQL.pptx
DOCX
Young mine textbook
PDF
Thuchanh csdl
PDF
Co So Du Lieu Tuan năm Trường HCM. .pdf
PDF
ôn tập dbms
b5-Trigger_h-HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
C5.SQLTriggerchuowng5dskahskaldjsdsaldkl.pdf
Slide_Bai_Giang_Pjmjjmjjjmjjjjhan_2.pptx
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
b2-ddl-create-190213084659.pdf
New microsoft word document
B2 - DDL - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - DVG
Csdl61
Trigger, Cursor, Function in SQL Server
slide_Chuong 3_ (1).ppt
Bai tap-thuc-hanh-he-quan-tri-csdl
Chuong 4 - SQL - University of Information Technology.pdf
Cơ sở dữ liệu suy diễn. CSDL ACTIVE.pptx
Giao trinh sql server 2005
07 trigger view
ORACLE_ch2_SQL.pptx
Young mine textbook
Thuchanh csdl
Co So Du Lieu Tuan năm Trường HCM. .pdf
ôn tập dbms
Ad

More from kikihoho (20)

PDF
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
PPT
chuong 5. do thi (phan 1)
PPTX
chuong 4. dai so boole
PPT
chuong 3. quan he
PPTX
chuong 2. phep dem
PPTX
chuong 1. co so logic
PDF
Đề thi 03
PDF
Đề thi 02
DOC
14 đề thi thực hành
PPT
Cây nhị phân tìm kiếm
PDF
Cây và cây nhị phân
PDF
ctdl&amp;gt 05-list_kep
PDF
ctdl&amp;gt 04-list_don
PPT
Cấu trúc dữ liệu động
PDF
Tìm kiếm và sắp nội
PDF
CTDL&GT_01
PDF
csdl bai-thuchanh_02
PDF
csdl bai-thuchanh_01
PPT
csdl - buoi13-14
PPT
csdl - buoi10-11-12
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
chuong 5. do thi (phan 1)
chuong 4. dai so boole
chuong 3. quan he
chuong 2. phep dem
chuong 1. co so logic
Đề thi 03
Đề thi 02
14 đề thi thực hành
Cây nhị phân tìm kiếm
Cây và cây nhị phân
ctdl&amp;gt 05-list_kep
ctdl&amp;gt 04-list_don
Cấu trúc dữ liệu động
Tìm kiếm và sắp nội
CTDL&GT_01
csdl bai-thuchanh_02
csdl bai-thuchanh_01
csdl - buoi13-14
csdl - buoi10-11-12

Recently uploaded (20)

PDF
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
PPTX
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
PDF
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PDF
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
DOCX
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
PDF
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
PPTX
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
DOCX
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
DOCX
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
PPT
BÀi giảng phương pháp luận nghiên cứu khoa học.ppt
PPTX
Vai trò vô cùng quan trọng để thuyết trình.pptx
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
DOCX
xin loi vi da den bai hoc cuo bd thnnn 2
PPTX
Tốc độ và vận tốc trong chuyển động thẳng
DOCX
Set menu 3 món rất hay và hiện đại dành cho người
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
[Toán 10] - Bộ 5 Đề Ôn Tập học Kì 2.pdf cho học sinh lớp 10
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
BÀi giảng phương pháp luận nghiên cứu khoa học.ppt
Vai trò vô cùng quan trọng để thuyết trình.pptx
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
xin loi vi da den bai hoc cuo bd thnnn 2
Tốc độ và vận tốc trong chuyển động thẳng
Set menu 3 món rất hay và hiện đại dành cho người

csdl-trigger

  • 1. TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM Khoa Hệ Thống Thông Tin Tên môn học: Cơ sở dữ liệu I. TÓM TẮT BÀI THỰC HÀNH Yêu cầu lý thuyết Sinh viên đã được trang bị kiến thức: - Ràng buộc toàn vẹn.. Nội dung - Xây dựng được các câu RBTV bằng Trigger II. HƯỚNG DÂN TRIGGER: 1. Giới thiệu Trigger: - Trigger là một kỹ thuật lập trình đặc biệt trong SQL, dùng để thực hiện các loại ràng buộc toàn vẹn có tính phức tạp, nó sẽ có hiệu lực khi chúng ta thay đổi dữ liệu trên một bảng dữ liệu cụ thể hoặc các lệnh xử lí làm thay đổi dữ liệu của các lênh: insert, update, delete. Trong trigger có thể chừa các lệnh truy vấn từ các bảng khác hoặc bao gồm những lệnh truy vấn phức tạp. - Trigger chạy một cách tự động: chúng được kích hoạt ngay tức thì khi có sự thay đổi dữ liệu trên bảng dữ liệu. 2. Cú pháp: 2.1. Lệnh tạo trigger: Create Trigger trigger_name on table_name For [insert,update,delete] As Begin Khai báo các xử lí End Lưu ý: trigger sau khi đã tạo, để chỉnh sửa nội dung các khai báo xử lí thì ta thay từ khóa Create bằng từ khóa Alter => sau đó cho thực thi lai trigger (bôi đen nhấn F5) thì nội dung đó mới có hiệu lực 2.2. Lệnh xóa trigger: Drop Trigger trigger_name Lưu ý: trường hợp thi chỉ muốn ngưng kiểm tra trigger thì ta sử dụng lệnh sau: Alter table table_name Disable/Enable Trigger trigger_name Hoặc Alter table table_name Disable/Enable Trigger ALL 3. Một số thao tác liên quan đến trigger:
  • 2. 3.1. Thao tác dữ liệu: _Khi người dùng thực hiện thao tác insert dữ liệu vào trong các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm với tên INSERTED có cấu trúc tương tự như bảng dữ liệu mà ta muốn insert dữ liệu vào. _Khi người dùng thực hiện thao tác delete dữ liệu các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm với tên DELETED có cấu trúc tương tự như bảng dữ liệu mà ta muốn delete dữ liệu.. _Khi người dùng thực hiện thao tác update dữ liệu các quan hệ thì hệ thống sẽ thực hiện 2 thao tác sau:  Tạo ra bảng DELETED để chứa dữ liệu cũ  Tạo ra bảng INSERTED để chứa dữ liệu mới 3.2. Thao tác lập trình: - Sinh viên tham khảo Book Online về: + Khai báo biến: DECLARE + Xuat thong tin: PRINT,RAISE + Cấu trúc điều kiện: IF + Cấu trúc lặp: FOR + Con trỏ: CURSOR + Hủy cập nhật dữ liệu vào hệ thống bộ nhớ: ROLLBACK TRAN III. BÀI TẬP YÊU CẦU: Bài 1. Sinh viên làm quen với việc cài đặt trigger cho các RBTV cơ bản sau: a) Khi thêm một khách hành thì hiển thị thông báo “Khach hang da them thanh cong” b) Khi thêm 1 hoá đơn thì hiển thị thông báo “Hoá đơn của khách hàng <Họ tên khách hàng> đã được thêm thành công” c) Khi xoá một CTHD thì hiển thị thông báo “CTHD của <SoHD> đã bị xoá” d) Khi chỉnh sửa tên sản phẩm của một sản phẩm thì cho biết sản phẩm đó của nước nào sản xuất Hướng dẫn câu a: CREATE TRIGGER trg_Bai1a ON KHACHHANG FOR INSERT AS BEGIN Print ‘Khach hang da them thanh cong’ END Kiểm tra lại trigger có hoạt động? INSERT INTO KHACHHANG(MAKH) VALUES(‘KH50’) Hướng dẫn câu b: CREATE TRIGGER trg_ Kiemtra_NhapHD ON HOADON FOR INSERT AS BEGIN -- Dùng từ khoá để khai báo biến DECLARE @MAKH CHAR(4) DECLARE @HOTEN VARCHAR(40) -------------------------------- SELECT @MAKH=MAKH FROM INSERTED SELECT @HOTEN=HOTEN FROM KHACHHANG WHERE MAKH=@MAKH PRINT 'Hoa don cua khach hang '+@HOTEN+' da duoc them thanh cong' END Bài 2. Sinh viên hoàn thành Phần I bài tập Quanlibanhang (từ câu 11 đến câu 15)
  • 3. Hướng dẫn câu 11: Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK). Các bước để giải một câu RBTV phức tạp: - Xác định bối cảnh: KHACHHANG, HOADON - Xác định bảng tầm ảnh hưởng: + Dấu “+” cho biết khi ta thao tác dữ liệu sẽ bị vi phạm + Dấu “-” cho biết khi ta thao tác dữ liệu không bị vi phạm Thêm Xóa Sửa KHACHHANG - - +(NGDK) HOADON + - +(NGHD) - Thực hiện cài đặt trigger tại những ô có dấu “+” -- Khi thêm 1 HD sẽ vi phạm RBTV -- Cách 1: CREATE TRIGGER trg01_ins_HOADON ON HOADON FOR INSERT AS BEGIN -- Khai bao bien de chua du lieu tu bang INSERTED ( bang nay co cau truc tuong tu bang HOADON) khi ta them du lieu vao bang HOADON DECLARE @MAKH varchar(4); DECLARE @NGHD smalldatetime; SELECT @MAKH=MAKH,@NGHD=NGHD FROM INSERTED -- Khai bao bien de chua du lieu tu bang KHACHHANG DECLARE @NGDK smalldatetime; SELECT @NGDK=NGDK FROM KHACHHANG WHERE MAKH=@MAKH IF (@NGDK>@NGHD) BEGIN PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’ ROLLBACK TRAN END ELSE BEGIN PRINT ‘HOA DON DA THEM THANH CONG’ END END -------------------------------------- -- Cách 2: CREATE TRIGGER trg01_ins_HOADON ON HOADON FOR INSERT AS BEGIN IF (SELECT COUNT(*) FROM KHACHHANG K,INSERTED I WHERE K.MAKH=I.MAKH AND K.NGDK>I.NGHD)>0 BEGIN PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’ ROLLBACK TRAN END ELSE BEGIN
  • 4. PRINT ‘HOA DON DA THEM THANH CONG’ END END Cài đặt tương tự cho các dấu cộg còn lại. IV. BÀI TẬP MỞ RỘNG: Bài 3. Sinh viên hoàn thành bài tập Quanligiaovu