Understanding Triggers in SQL Server, Summaries of Mathematics

What triggers are in SQL Server and how they are used to respond to specific database events such as INSERT, UPDATE, or DELETE operations. It covers the concept of triggered tables, the creation of triggers using the CREATE TRIGGER statement, and provides examples of how triggers can be used to log changes to a table. The document also discusses the use of the INSERTED and DELETED tables and the syntax for altering or dropping triggers.

Typology: Summaries

2016/2017

Uploaded on 04/02/2022

ha-nguyen-ngoc-2
ha-nguyen-ngoc-2 🇻🇳

6 documents

1 / 16

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Session 26
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Understanding Triggers in SQL Server and more Summaries Mathematics in PDF only on Docsity!

  • Session

Content

  • (^) Trigger
  • (^) Example

Trigger là gì?

M ỗi table th ường sẽ có 3 thao tác làm thay đ ổi d ữ li u đó là: UPDATE, INSERT, DELETE.ệ

Nh ư v y có 3 lo i Trigger sau:ậ ạ

UPDATE : Lo i trigger sẽ đạ ược kích ho t khi có hành đ ng c p nh t d ạ ộ ậ ậ ữ li u.ệ INSERT : Lo i trigger sẽ đạ ược kích ho t khi có hành đ ng thêm d ạ ộ ữ li u.ệ DELETE : Lo i trigger sẽ đạ ược kích ho t khi có hành đ ạ ộng xoá d ữ li u.ệ

Bảng ảo INSERTED và DELETED

SQL Server cung cấp 2 bảng ảo dành riêng cho trigger tên là INSERTED và DELETED, hai bảng này sẽ lưu trữ dữ liệu của các row trước hoặc sau khi hành động xảy ra.

Khi nào thì sử dụng Trigger?

 (^) Trigger sẽ h ữu ích khi chúng ta c ần th ực thi m ột s ố s ự ki n tệ ự đ ng trên m tộ ộ s ố tình hu ống mong mu ốn nh ất đ nh. ị  (^) Ví d ụ, chúng ta có m ột b ng liên t ả ục thay đ ổi và c ần bi ết các l ần xu ất hi n c ệ ủa các thay đ ổi và khi nào các thay đ ổi này x y ra. N ả ếu b ng chính th ả ực hi n b ệ ất kỳ thay đ ổi nào trong các tr ường h ợp nh ư v y, chúngậ ta có th ể ạt o trình kích ho t đạ ể chèn d ữ li u mong muệ ốn vào m ột b ng riêng bi t. ả ệ.

Ví dụ:

 (^) Gi ả s ử chúng ta có b ngả Employee là l ư u tr ữ thông tin nhân viên c ủa công ty. Và b ng ả Employee_History, b ng này sẽ lả ưu tr ữ thông tin thay đ ổi c ủa b ng ả Employee. CREATE TABLE Employee ( Id INT PRIMARY KEY , Name VARCHAR (45), Salary INT , Gender VARCHAR (12), DepartmentId INT ) INSERT INTO Employee VALUES (1,'Steffan', 82000, 'Male', 3), (2,'Amelie', 52000, 'Female', 2), (3,'Antonio', 25000, 'male', 1), (4,'Marco', 47000, 'Male', 2), (5,'Eliana', 46000, 'Female', 3) T o b ngạ ả Employee và thêm d ữ li u đệ ểtest:

Ví dụ:

 (^) Gi ả s ử chúng ta có b ngả Employee là l ưu tr ữ thông tin nhân viên c ủa công ty. Và b ng ả Employee_History, b ng này sẽ lả ưu tr ữ thông tin thay đ ổi c ủa b ng ả Employee. CREATE TRIGGER trInsertEmployee ON Employee FOR INSERT AS BEGIN DECLARE @Id INT SELECT @Id = Id FROM inserted INSERT INTO Employee_History VALUES ('New employee with Id = ' + CAST(@Id AS VARCHAR (10)) + ' is added at ' + CAST(Getda te() AS VARCHAR (22))) END T ạo m ột Trigger l ư u tr ữ các b n ghi giao d ch cả ị ủa t ừng thao tác chèn trên b ng ả Employee vào b ngả Employee_History.

Ví dụ:

 (^) Gi ả s ử chúng ta có b ngả Employee là l ưu tr ữ thông tin nhân viên c ủa công ty. Và b ng ả Employee_History, b ng này sẽ lả ưu tr ữ thông tin thay đ ổi c ủa b ng ả Employee. INSERT INTO Employee VALUES (6,'Peter', 62000, 'Male', 3)

Testing:

Thêm m ột b n ghi m ả ới vào trong Employee: Th ực hi n truy v ệ ấn b ng ả Employee_History để ki ểm tra s ự ho t đ ng cạ ộ ủa Trigger :

Ví dụ:

 (^) Gi ả s ử chúng ta có b ngả Employee là l ưu tr ữ thông tin nhân viên c ủa công ty. Và b ng ả Employee_History, b ng này sẽ lả ưu tr ữ thông tin thay đ ổi c ủa b ng ả Employee. DELETE FROM Employee WHERE Id = 2;

Testing:

Xóa m ột b n ghi có Id b ng 2 trong ả ằ Employee: Th ực hi n truy v ệ ấn b ng ả Employee_History để ki ểm tra s ự ho t đ ng cạ ộ ủa Trigger :

Sửa một Trigger

ALTER TRIGGER trigger_name ON table_name AFTER { INSERT | UPDATE | DELETE } AS BEGIN -- trigger statements END

What have you learned today?