SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
SQL

Nguyễn Thị Hậu
TRIGGER
1. Khái niệm
• Trigger là một kiểu thủ tục được lưu đặc biệt, chúng được tự
  động gọi khi bạn sửa đổi dữ liệu mà trigger được thiết kế để
  bảo vệ.
• Các trigger giúp bảo đảm sự toàn vẹn cho dữ liệu của bạn bằng
  cách ngăn không cho những sự thay đổi không nhất quán được
  thực hiện.
• Vd : lương của nhân viên không thể cao hơn lương của người
  quản lý.
2. Tạo trigger
   CREATE TRIGGER Trigger_name
   ON table | view
   [WITH ENCRYPTION]
    { FOR | AFTER | INSTEAD OF } {[DELETE] [,] [INSERT] [,]
   [UPDATE] }
    AS Sql_statement

Trong đó
WITH ENCRYPTION
Ngăn chặn người dùng khác xem văn bản của trigger
2. Tạo trigger
AFTER :
  - trigger được thực thi sau khi tất cả các câu lệnh SQL gây ra trigger đã
  thực thi thành công.
  - AFTER là kiểu mặc định nếu từ khóa FOR được dùng.
  -Không thể định nghĩa trigger AFTER cho view
INSTEAD OF
  - trigger được thực thi thay cho các câu lệnh SQL gây ra
  trigger.
  - INSTEAD OF trigger dùng được cho view.
{[DELETE] [,] [INSERT][,][UPDATE]}
  - xác định câu lệnh mà khi thực thi trên bảng hoặc view sẽ gây
  ra trigger.
Một số chú ý
• deleted, inserted là các bảng logic lưu các giá trị cũ và mới
  của các hàng có thể bị thay đổi.
• IF UPDATE (column_list)
  Dùng để kiểm tra hành động Insert, Update (không dùng cho
  Delete)
3.Các kiểu trigger
3.1. Insert trigger
Create trigger TongLuong1
On NhanVien
For Insert As
If ( (select MasoDV from Inserted) is Not Null)
Begin
    Update DonVi
    Set TongLuong = TongLuong + (select luong from Inserted )
    Where MasoDV= (select MasoDV from Inserted );
    Print 'Da cap nhat tong luong cua don vi. Tong luong1'
End
Kiểm tra :
insert into Nhanvien
values (17,'Phan Nhu','Quynh','1985-04-16','Nu','Nam Dinh',
   4000000, 2,3)
3.Các kiểu trigger
3.2. Update Trigger
CREATE TRIGGER UpdateMaNV
ON NhanVien
FOR UPDATE AS
IF UPDATE (MaNV)
BEGIN
PRINT ‘Khong the thay doi gia tri cua MaNV’
ROLLBACK TRANSACTION
END
Kiểm tra :    update NhanVien
              set MasoNV=100 where MasoNV=1
3.Các kiểu trigger
3.3. Delete trigger
Create trigger XoaDV
On DonVi
For Delete As
Begin
   Delete from NhanVien Where MasoDV=(select MasoDV
   from deleted);
   Delete from DuAn Where MasoDV=(select MasoDV from
   deleted);
End
Kiểm tra : Delete from Donvi Where MasoDV=1
4.Sửa đổi trigger
ALTER TRIGGER trigger_name
ON ( table | view )
[ WITH ENCRYPTION ]
   {
     { ( FOR | AFTER | INSTEAD OF ) { [ DELETE ] [ , ] [
   INSERT ] [ , ] [ UPDATE ] }
        [ NOT FOR REPLICATION ]
        AS
        sql_statement [ ...n ]
     }
5.Xóa trigger
• DROP TRIGGER { trigger_name } [ ,...n ]
Xóa một hay nhiều trigger

Ví dụ :
USE pubs
IF EXISTS (SELECT name FROM sysobjects WHERE name =
   'employee_insupd' AND type = 'TR')
   DROP TRIGGER employee_insupd
GO
6. INSTEAD-OF trigger
• Instead Of Trigger thường dùng cho Khung nhìn với các chức năng sau :
- Cập nhật nhiều bảng một lúc trong một khung nhìn.
- Tăng điều kiện ràng buộc trên các thuộc tính so với CHECK.
- Đánh giá trạng thái của bảng trước hoặc sau khi cập nhật dữ liệu, và thực
  thi một số nhiệm vụ như in thông báo lỗi, sửa đổi bảng khác.
- Cho phép một phần tập hợp câu lệnh bị từ chối trong khi các phần còn lại
  vẫn được thực thi thành công.

   INSTEAD OF trigger sử dụng các bảng logic inserted, deleted để lưu
   những thay đổi về dữ liệu khi trigger đang được thực thi.
Ví dụ: Tạo view NV_DV lấy thông tin từ 2 bảng NhanVien và
  DonVi

Create view NV_DV
AS
Select
  MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,nv.MasoDV,Te
  nDV,MasoNQL
From NhanVien nv, DonVi dv
Where nv.MasoDV=dv.MasoDV
Tạo trigger chen_NVDV trên view NV_DV dùng để chèn dữ
   liệu vào các bảng tương ứng khi chèn một bản ghi vào view.
Create Trigger chen_NVDV
On NV_DV Instead of Insert
As
Begin
   Insert into NhanVien
   (MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,MasoDV)
   Select MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,MasoDV
   From inserted;
   Insert into DonVi(MasoDV,TenDV,MasoNQL)
   Select MasoDV,TenDV,MasoNQL
   From inserted;
End
Bài tập
Viết các trigger sau :
1. Khi thông tin nhân viên làm việc cho một dự án thay đổi, nếu
   tổng số giờ làm việc của nhân viên cho các dự án lớn hơn
   40h/tuần, hoặc nhỏ hơn 20h/tuần thì hiển thị thông báo.
2. Khi một nhân viên bị xóa, hãy xóa các thông tin về dự án,
   người phụ thuộc liên quan đến nhân viên đó. Nếu nhân viên đó
   là người quản lý đơn vị, thì giá trị MaNQL=null, nếu nhân
   viên là người giám sát thì giá trị MaNGS của các nhân viên
   dưới sự giám sát của người này là null.
3. Khi chèn thêm một bản ghi hay cập nhật lương của một nhân
   viên thì đảm bảo lương nhân viên đó không lớn hơn lương của
   người giám sát và người quản lý đơn vị.

Weitere ähnliche Inhalte

Was ist angesagt?

Hệ thống quản lý đặt tour du lịch
Hệ thống quản lý đặt tour du lịchHệ thống quản lý đặt tour du lịch
Hệ thống quản lý đặt tour du lịchHan Nguyen
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuMasterCode.vn
 
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Duc Tran
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql. .
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1pisu412
 
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimhệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimthuhuynhphonegap
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
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 tinQuynh michelanh quynh
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh Thanh
 
Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.ssuser499fca
 
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 tinhuynhle1990
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 

Was ist angesagt? (20)

Hệ thống quản lý đặt tour du lịch
Hệ thống quản lý đặt tour du lịchHệ thống quản lý đặt tour du lịch
Hệ thống quản lý đặt tour du lịch
 
Phát triển hệ thống thương mại điện tử PTIT
Phát triển hệ thống thương mại điện tử PTITPhát triển hệ thống thương mại điện tử PTIT
Phát triển hệ thống thương mại điện tử PTIT
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệu
 
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝNHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
Báo cáo tốt nghiệp - XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ NHÀ HÀNG VỪA VÀ NHỎ SỬ DỤ...
 
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAYĐề tài: Xây dựng website bán hàng trực tuyến, HAY
Đề tài: Xây dựng website bán hàng trực tuyến, HAY
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đĐề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
 
Quản lý âm nhạc
Quản lý âm nhạcQuản lý âm nhạc
Quản lý âm nhạc
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đĐề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
 
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phimhệ quản trị cơ sỡ dữ liệu bán vé xem phim
hệ quản trị cơ sỡ dữ liệu bán vé xem phim
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uốngĐề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
 
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
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.
 
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
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Httt bai tap
Httt bai tapHttt bai tap
Httt bai tap
 

Mehr von Nguyen Duong

Signature in Digital image - Chữ kí trong ảnh số
Signature in Digital image - Chữ kí trong ảnh sốSignature in Digital image - Chữ kí trong ảnh số
Signature in Digital image - Chữ kí trong ảnh sốNguyen Duong
 
Hàm băm và đại diện thông điệp - Message digest and hash function
Hàm băm và đại diện thông điệp - Message digest and hash functionHàm băm và đại diện thông điệp - Message digest and hash function
Hàm băm và đại diện thông điệp - Message digest and hash functionNguyen Duong
 
Applying Semat - ứng dụng semat
Applying Semat - ứng dụng sematApplying Semat - ứng dụng semat
Applying Semat - ứng dụng sematNguyen Duong
 
Engineering in translation
Engineering in translationEngineering in translation
Engineering in translationNguyen Duong
 
Cloud computing skepticism - But i'm sure
Cloud computing skepticism - But i'm sureCloud computing skepticism - But i'm sure
Cloud computing skepticism - But i'm sureNguyen Duong
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam mayNguyen Duong
 
Android presentation
Android presentationAndroid presentation
Android presentationNguyen Duong
 
Nguyen Van Duong Ki Nang Thuyet Trinh
Nguyen Van Duong Ki Nang Thuyet TrinhNguyen Van Duong Ki Nang Thuyet Trinh
Nguyen Van Duong Ki Nang Thuyet TrinhNguyen Duong
 

Mehr von Nguyen Duong (20)

Signature in Digital image - Chữ kí trong ảnh số
Signature in Digital image - Chữ kí trong ảnh sốSignature in Digital image - Chữ kí trong ảnh số
Signature in Digital image - Chữ kí trong ảnh số
 
Ibm wattson
Ibm wattsonIbm wattson
Ibm wattson
 
Hàm băm và đại diện thông điệp - Message digest and hash function
Hàm băm và đại diện thông điệp - Message digest and hash functionHàm băm và đại diện thông điệp - Message digest and hash function
Hàm băm và đại diện thông điệp - Message digest and hash function
 
Applying Semat - ứng dụng semat
Applying Semat - ứng dụng sematApplying Semat - ứng dụng semat
Applying Semat - ứng dụng semat
 
Engineering in translation
Engineering in translationEngineering in translation
Engineering in translation
 
Cloud computing skepticism - But i'm sure
Cloud computing skepticism - But i'm sureCloud computing skepticism - But i'm sure
Cloud computing skepticism - But i'm sure
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam may
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Nguyen Van Duong Ki Nang Thuyet Trinh
Nguyen Van Duong Ki Nang Thuyet TrinhNguyen Van Duong Ki Nang Thuyet Trinh
Nguyen Van Duong Ki Nang Thuyet Trinh
 
Nachos
NachosNachos
Nachos
 
Toc
TocToc
Toc
 
Preface
PrefacePreface
Preface
 
Os Errata
Os ErrataOs Errata
Os Errata
 
Mach
MachMach
Mach
 
Free Bsd
Free BsdFree Bsd
Free Bsd
 
Ch20
Ch20Ch20
Ch20
 
Ch21
Ch21Ch21
Ch21
 
Ch19
Ch19Ch19
Ch19
 
Ch18
Ch18Ch18
Ch18
 
Ch17
Ch17Ch17
Ch17
 

Kürzlich hochgeladen

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 

Kürzlich hochgeladen (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 

Trigger in SQL

  • 3. 1. Khái niệm • Trigger là một kiểu thủ tục được lưu đặc biệt, chúng được tự động gọi khi bạn sửa đổi dữ liệu mà trigger được thiết kế để bảo vệ. • Các trigger giúp bảo đảm sự toàn vẹn cho dữ liệu của bạn bằng cách ngăn không cho những sự thay đổi không nhất quán được thực hiện. • Vd : lương của nhân viên không thể cao hơn lương của người quản lý.
  • 4. 2. Tạo trigger CREATE TRIGGER Trigger_name ON table | view [WITH ENCRYPTION] { FOR | AFTER | INSTEAD OF } {[DELETE] [,] [INSERT] [,] [UPDATE] } AS Sql_statement Trong đó WITH ENCRYPTION Ngăn chặn người dùng khác xem văn bản của trigger
  • 5. 2. Tạo trigger AFTER : - trigger được thực thi sau khi tất cả các câu lệnh SQL gây ra trigger đã thực thi thành công. - AFTER là kiểu mặc định nếu từ khóa FOR được dùng. -Không thể định nghĩa trigger AFTER cho view INSTEAD OF - trigger được thực thi thay cho các câu lệnh SQL gây ra trigger. - INSTEAD OF trigger dùng được cho view. {[DELETE] [,] [INSERT][,][UPDATE]} - xác định câu lệnh mà khi thực thi trên bảng hoặc view sẽ gây ra trigger.
  • 6. Một số chú ý • deleted, inserted là các bảng logic lưu các giá trị cũ và mới của các hàng có thể bị thay đổi. • IF UPDATE (column_list) Dùng để kiểm tra hành động Insert, Update (không dùng cho Delete)
  • 7. 3.Các kiểu trigger 3.1. Insert trigger Create trigger TongLuong1 On NhanVien For Insert As If ( (select MasoDV from Inserted) is Not Null) Begin Update DonVi Set TongLuong = TongLuong + (select luong from Inserted ) Where MasoDV= (select MasoDV from Inserted ); Print 'Da cap nhat tong luong cua don vi. Tong luong1' End
  • 8. Kiểm tra : insert into Nhanvien values (17,'Phan Nhu','Quynh','1985-04-16','Nu','Nam Dinh', 4000000, 2,3)
  • 9. 3.Các kiểu trigger 3.2. Update Trigger CREATE TRIGGER UpdateMaNV ON NhanVien FOR UPDATE AS IF UPDATE (MaNV) BEGIN PRINT ‘Khong the thay doi gia tri cua MaNV’ ROLLBACK TRANSACTION END Kiểm tra : update NhanVien set MasoNV=100 where MasoNV=1
  • 10. 3.Các kiểu trigger 3.3. Delete trigger Create trigger XoaDV On DonVi For Delete As Begin Delete from NhanVien Where MasoDV=(select MasoDV from deleted); Delete from DuAn Where MasoDV=(select MasoDV from deleted); End Kiểm tra : Delete from Donvi Where MasoDV=1
  • 11. 4.Sửa đổi trigger ALTER TRIGGER trigger_name ON ( table | view ) [ WITH ENCRYPTION ] { { ( FOR | AFTER | INSTEAD OF ) { [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] } [ NOT FOR REPLICATION ] AS sql_statement [ ...n ] }
  • 12. 5.Xóa trigger • DROP TRIGGER { trigger_name } [ ,...n ] Xóa một hay nhiều trigger Ví dụ : USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'employee_insupd' AND type = 'TR') DROP TRIGGER employee_insupd GO
  • 13. 6. INSTEAD-OF trigger • Instead Of Trigger thường dùng cho Khung nhìn với các chức năng sau : - Cập nhật nhiều bảng một lúc trong một khung nhìn. - Tăng điều kiện ràng buộc trên các thuộc tính so với CHECK. - Đánh giá trạng thái của bảng trước hoặc sau khi cập nhật dữ liệu, và thực thi một số nhiệm vụ như in thông báo lỗi, sửa đổi bảng khác. - Cho phép một phần tập hợp câu lệnh bị từ chối trong khi các phần còn lại vẫn được thực thi thành công. INSTEAD OF trigger sử dụng các bảng logic inserted, deleted để lưu những thay đổi về dữ liệu khi trigger đang được thực thi.
  • 14. Ví dụ: Tạo view NV_DV lấy thông tin từ 2 bảng NhanVien và DonVi Create view NV_DV AS Select MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,nv.MasoDV,Te nDV,MasoNQL From NhanVien nv, DonVi dv Where nv.MasoDV=dv.MasoDV
  • 15. Tạo trigger chen_NVDV trên view NV_DV dùng để chèn dữ liệu vào các bảng tương ứng khi chèn một bản ghi vào view. Create Trigger chen_NVDV On NV_DV Instead of Insert As Begin Insert into NhanVien (MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,MasoDV) Select MasoNV,Hodem,Ten,ngaysinh,gioitinh,diachi,MasoDV From inserted; Insert into DonVi(MasoDV,TenDV,MasoNQL) Select MasoDV,TenDV,MasoNQL From inserted; End
  • 16. Bài tập Viết các trigger sau : 1. Khi thông tin nhân viên làm việc cho một dự án thay đổi, nếu tổng số giờ làm việc của nhân viên cho các dự án lớn hơn 40h/tuần, hoặc nhỏ hơn 20h/tuần thì hiển thị thông báo. 2. Khi một nhân viên bị xóa, hãy xóa các thông tin về dự án, người phụ thuộc liên quan đến nhân viên đó. Nếu nhân viên đó là người quản lý đơn vị, thì giá trị MaNQL=null, nếu nhân viên là người giám sát thì giá trị MaNGS của các nhân viên dưới sự giám sát của người này là null. 3. Khi chèn thêm một bản ghi hay cập nhật lương của một nhân viên thì đảm bảo lương nhân viên đó không lớn hơn lương của người giám sát và người quản lý đơn vị.