PDA

View Full Version : Trigger



boygom
30-09-2010, 18:38
Mình chuẩn học Trigger trong SQL 2005 nhưng chưa biết nó như thế nào hết. Chỉ nge đồn là nó bảo mật mạnh lắm...Mình xem nhiều trên mấy trang web rồi, nhưng vẫn chưa hiểu nhiều. Có bạn nào có share cho mình và AE cùng tìm hiểu nge.
Thank mấy bạn nhiều lắm...

kidonekid
01-10-2010, 12:30
Bài th?c hành môn H? qu?n tr? CSDL

2. Trigger

2.1. Gi?i thi?u
Trigger là m?t trư?ng h?p đ?c bi?t c?a store procedure, 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 x? ly làm thay đ?i d? li?u c?a các l?nh: insert, update, delete. 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 SQL ph?c t?p.

M?t s? thu?n l?i khi s? d?ng trigger:

? Trigger ch?y m?t cách t? đ?ng: chúng đư?c kích ho?t ngay t?c thi khi có s? thay đ?i d? li?u
trên b?ng d? li?u.
? Trigger có th? th?c hi?n cascade khi vi?c thi hành có ?nh hư?ng đ?n nh?ng b?ng liên quan.
? Trigger có nh?ng hi?u l?c ít b? h?n ch? hơn so v?i ràng bu?c giá tr? ngh?a là có th? ràng bu?c
tham chi?u đ?n nh?ng c?t c?a nh?ng b?ng d? li?u khác.
? Khi trigger đư?c kích ho?t b?i 1 l?nh Transact-SQL insert đ? thêm m?t b? m?i vào b?ng AAA thi b?
m?i này đư?c lưu t?m th?i vào m?t b?ng t?m có tên là inserted có cùng c?u trúc v?i b?ng AAA.
Khi k?t thúc trigger này thi b? d? li?u m?i th?t s? lưu xu?ng CSDL.
? Tương t? đ?i v?i l?nh delete, các b? d? li?u b? xóa s? chuy?n t?m vào b?ng t?m deleted.

2.2. Cú pháp

2.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 bi?n x? ly}
{Các l?nh Transact-SQL}
End

2.2.2. L?nh xóa Trigger

Drop Trigger trigger_Name

2.3. Ví d?
T?o trigger cho thao tác xóa m?t đ?u sách trong b?ng Muon.

CREATE TRIGGER tg_delMuon ON muon
FOR delete
AS
Begin
DECLARE @isbn int, @ma_cuonsach smallint
SELECT @isbn = isbn, @ma_cuonsach = ma_cuonsach
FROM deleted

UPDATE cuonsach
SET tinhtrang = yes
WHERE isbn = @isbn AND ma_cuonsach = @ma_cuonsach
End

B? môn H? th?ng thông tin – Khoa Công ngh? thông tin – Đ?i h?c Khoa h?c t? nhiên
5