









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 16
This page cannot be seen from the preview
Don't miss anything!










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.ệ
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.
(^) 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. ả ệ.
(^) 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:
(^) 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.
(^) 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)
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 :
(^) 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;
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 :
ALTER TRIGGER trigger_name ON table_name AFTER { INSERT | UPDATE | DELETE } AS BEGIN -- trigger statements END
What have you learned today?