SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
. .
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
Trung Chinh Hà
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanh
Hai Rom
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
Pix Nhox
 
Phân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tinPhân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tin
huynhle1990
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Jojo Kim
 

La actualidad más candente (20)

Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
 
Phân tích thiết kế hệ thống quản lý bán nước giải khát
Phân tích thiết kế hệ thống quản lý bán nước giải khátPhân tích thiết kế hệ thống quản lý bán nước giải khát
Phân tích thiết kế hệ thống quản lý bán nước giải khát
 
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESSQuản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanh
 
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
 
Bai tap chia_dia_chi_ip
Bai tap chia_dia_chi_ipBai tap chia_dia_chi_ip
Bai tap chia_dia_chi_ip
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
Phân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tinPhân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tin
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Week04 review
Week04 reviewWeek04 review
Week04 review
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
 

Similar a csdl-trigger

Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
Kuli An
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
Nhat Linh Luong
 
New microsoft word document
New microsoft word documentNew microsoft word document
New microsoft word document
phamtuan1983
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NET
ANHMATTROI
 

Similar a csdl-trigger (20)

Bai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdlBai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdl
 
slide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).pptslide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).ppt
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
Tip oracle
Tip oracleTip oracle
Tip oracle
 
07 trigger view
07 trigger view07 trigger view
07 trigger view
 
bai in.docx
bai in.docxbai in.docx
bai in.docx
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
 
Bao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNBao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DN
 
New microsoft word document
New microsoft word documentNew microsoft word document
New microsoft word document
 
Csdl61
Csdl61Csdl61
Csdl61
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NET
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Lession 2
Lession 2Lession 2
Lession 2
 
Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#
 
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwwwHQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
 
access
accessaccess
access
 
Thực tập công nhân phần mạng và truyền thông
Thực tập công nhân phần mạng và truyền thôngThực tập công nhân phần mạng và truyền thông
Thực tập công nhân phần mạng và truyền thông
 

Más de kikihoho (20)

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

Último

Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
dnghia2002
 

Último (20)

Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 

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