Tải bản đầy đủ (.pdf) (10 trang)

09.Trigger

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (102.2 KB, 10 trang )

1
5/23/2008 Khoa CNTT - H qun tr c s d liu
1
11
1
BÀI 9.
TRIGGER

Hiểu ñược trigger là gì, công dụng của nó

Tạo trigger.

Xoá trigger

Thay ñổi trigger
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
2
22
2
5/23/2008
Nội dung bài học
1. Giới thiệu Triggers
2. ðịnh nghĩa Triggers
3. Triggers làm việc như thế nào
4. Các ví dụ Triggers
5. Các lưu ý
2
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
3
33
3


5/23/2008
Trigger là gì

Trigger là một stored procedure ñặc biệt ñược gọi tự ñộng khi
user cập nhật dữ liệu trên một table

ðược kết hợp với table: ðược ñịnh nghĩa trên một table cụ
thể .

ðược gọi tự ñộng: Khi có một thao tác cập chật dữ liệu trên
table (insert, update, hoặc delete) thì trigger của thao tác
tương ứng ñược tự ñộng thực hiện.

Khác với procedure, trigger không thể ñược gọi trực tiếp,
không nhận tham số

Là một phần của transaction: những lệnh trong trigger ñược
xem là một single transaction, có thể ñược roll back từ bất kỳ
chổ nào trong trigger
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
4
44
4
5/23/2008
Sử dụng trigger ñể làm gì?

ðể thực hiện cascade updates và cascade deletes
qua các table quan hệ trong database

Ép buộc tính toàn vẹn dữ liệu phức tạp:


Thực hiện các ràng buộc có tham chiếu ñến các column
trong nhiều table.

ðịnh nghĩa Custom Error Messages:

Dùng trigger ñể trả về các chuỗi thông báo trạng thái của
một hàng ñộng nào ñó.

Bảo trì các dữ liệu không ñược chuẩn hoá
3
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
5
55
5
5/23/2008
Triggers hoạt ñộng như thế nào? (1)

Triggers ñược thực hiện tự ñộng sau khi lệnh
INSERT, UPDATE, hoặc DELETE ñược thực hiện
trên một table mà trigger ñó ñược ñịnh nghĩa. Còn
các constraints và INSTEAD OF trigger sẽ ñược
kiểm tra trước khi lệnh INSERT, UPDATE, hoặc
DELETE thực hiện.

Constraints sẽ ñược kiểm tra trước trigger.

Một table có thể có nhiều Triggers cho một action.
Một trigger có thể ñược ñịnh nghĩa cho nhiều action.
Khoa CNTT - Hệ quản trị cơ sở dữ liệu

6
66
6
5/23/2008
Triggers hoạt ñộng như thế nào? (2)

Khi có nhiều trigger trong một table, thì table owner
có thể dùng procedure hệ thống sp_settriggerorder
ñể chỉ ñịnh trigger ñầu và trigger cuối ñể thực thi.
Thứ tự của các trigger còn lại không thể sắp xếp
ñược.

User phải có quyền ñể thực hiện tất cả các lệnh mà
ñược ñịnh nghĩa trong Triggers

Table Owners không thể tạo ra các Triggers trên
Views hoặc Temporary Tables nhưng có thể tham
chiếu ñến view và temporary.
4
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
7
77
7
5/23/2008
Triggers hoạt ñộng như thế nào ? (3)

Triggers không trả kết quả về.

Triggers có thể ñiều khiển multi-row actions:


một hành ñộng INSERT, UPDATE, hoặc DELETE gọi một
trigger có thể ảnh hưởng lên nhiều dòng dữ liệu

Ta có thể chọn:

Xử lý tất cả các dòng cùng với nhau trong trường hợp
các dòng ảnh hưởng phải thoả ñiều kiện của trigger.

Xử lý từng dòng thỏa ñiều kiện.
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
8
88
8
5/23/2008
Logic tables
 Khi có action Insert, table logic inserted sinh
ra, có cấu trúc giống với cấu trúc table ñược
insert, có dữ liệu là record ñang ñược insert
 Khi có action delete, table deleted sinh ra, có
cấu trúc giống với cấu trúc table bị deleted, có
dữ liệu là record ñang bị xoá
 Khi có action update, có 2 table inserted và
deleted
5
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
9
99
9
5/23/2008
Tạo trigger

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE] }
[ WITH APPEND ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ] [ ...n ]
} ]
sql_statement [ ...n ]
}
}
Khoa CNTT - Hệ quản trị cơ sở dữ liệu
10
1010
10
5/23/2008
Tham số (1)

Table | view :

tên view/table mà tigger ñược thực hiện khi có action tương ứng.

WITH ENCRYPTION:

mã hoá nột dung text của lệnh create trigger trong table syscomments.

AFTER:


Trigger sẽ ñược gọi chỉ khi tất cả các hành ñộng ñã thực hiện xong. Các kiển
tra constrain và cascade sẽ ñược kiểm tra hoàn thành trước khi trigger thực
hiện.

Default là AFTER nếu chỉ có từ khoá FOR ñược chỉ ñịnh. AFTER trigger
không thể ñịnh nghĩa trên view.

INSTEAD OF:

chỉ ñịnh trigger ñựoc thực hiện thay cho action của trigger. INSTEAD OF
triggers không cho phép cập nhật dữ liệu trên view có WITH CHECK
OPTION.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×