1. Trang chủ
  2. » Công Nghệ Thông Tin

Các trigger - bài giảng

35 1,7K 10
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 308 KB

Nội dung

Các trigger - bài giảng

Trang 1

Chương 9

Các trigger

Trang 2

 Các thủ tục lưu tăng tốc các câu truy vấn, làm cho việc truy cập dữ liệu nhanh hơn, hỗ trợ các modul lập trình, duy trì tính nhất quán và tăng cường tính bảo mật.

Trang 3

 Có hai loại thủ tục lưu :

 Thủ tục lưu hệ thống đề cập đến phương pháp quản trị dữ liệu và cập nhật thông tin vào các bảng

 Thủ tục lưu do người dùng định nghĩa

 Câu lệnh CREATE PROCEDURE được sử dụng để tạo ra thủ tục lưu

 Câu lệnh EXECUTE được sử dụng để chạy thủ tục lưu

 Các tham biến có thể được sử dụng để nhập vào hoặc xuất ra các giá trị từ thủ tục lưu

Trang 4

 Chỉ định WITH RECOMPILE với lệnh EXECUTE

 Câu lệnh ALTER PROCEDURE được sử dụng để chỉnh sửa một thủ tục lưu

 Các mã trả về và câu lệnh RAISERROR được dùng để thông báo cho người sử dụng về các lỗi xuất hiện trong thủ tục lưu

Trang 5

Mục đích

 Định nghĩa các trigger

 Liệt kê các lợi ích của trigger

 Hiểu và sử dụng lệnh CREATE TRIGGER T-SQL

 Mô tả các bảng Inserted và Deleted được sử dụng bởi trigger

 Giải thích các kiểu trigger: INSERT, UPDATE, và DELETE

 Xác định được các lệnh SQL nào không thể sử dụng trong các trigger

 Khai báo trigger xếp theo tầng và trigger xếp lồng vào nhau

 Khai báo các trigger INSTEAD OF

 Chỉ ra các nhân tố tác động đến việc thực thi hành trigger

Trang 6

Các Trigger

 Các trigger là các thủ tục lưu, chúng được thực thi để phản ứng lại các thao tác chèn, cập nhật, hoặc xóa trong một bảng

 Các trigger được kích hoạt một cách tự động khi có một trong các thao tác trên xuất hiện

 Các trigger được sử dụng một cách phổ biến để ép các thao tác tuân theo các quy tắc nhất định

 Các trigger đảm bảo tính toàn vẹn và tính nhất quán của dữ liệu

Trang 8

Trigger Fired

Derek

Inserted

Trang 9

Sử dụng Trigger

 So sánh kiểu dữ liệu

 Đọc dữ liệu từ các bảng nằm trong cơ sở dữ liệu khác

 Thay đổi theo tầng hoặc xoá liên tục các bảng liên quan trong một cơ sở dữ liệu

 Huỷ bỏ các thay đổi không đúng

 Tuân theo các giới hạn,các giới hạn đó phức tạp hơn việc bắt lỗi bằng ràng buộc CHECK

 Thực thi các thủ tục lưu cục bộ và các thủ tục lưu từ

xa

Trang 11

Hướng dẫn tạo các Trigger

 Một trigger có thể kết hợp ba thao tác thực hiện trên một bảng như INSERT, UPDATE, và DELETE

 Một trigger thích ứng với một bảng đơn

 Tuỳ chọn WITH ENCRYPTION có thể được sử dụng để làm ẩn các khai báo của một trigger đối với người sử dụng.Tuy nhiên, một trigger đã được mã hoá sẽ không thể bị giải mã

 Một trigger có thể tham chiếu đến một view hoặc một bảng tạm thời, nhưng không thể kết hợp với chúng

 Một trigger có thể bao gồm các câu lệnh SQL với số lượng bất kì

Trang 12

Hướng dẫn tạo các Trigger

 Mặc định, chỉ có người tạo ra cơ sở dữ liệu đó mới có quyền tạo một trigger trong nó Quyền này không thể chuyển giao

 Một trigger chỉ có thể được tạo trong cơ sở dữ liệu hiện hành Tuy nhiên, trigger có thể tham chiếu đến các đối tượng nằm trong cơ sở dữ liệu khác

Trang 13

Sử dụng bảng Inserted và

Deleted

 Các Trigger truy nhập tới hai bảng logic có tên là Inserted và Deleted

Bảng Inserted và Deleted chứa ảnh của dữ liệu

trước và sau quá trình cập nhật

 Giản đồ tương đồng với bảng đã được cập nhật

 Dữ liệu trong bảng không bị tác động bởi thao tác cập

nhật sẽ không nằm trong bảng Inserted và Deleted.

Trang 14

Các kiểu Trigger

Trang 15

Các Trigger INSERT

 Một trigger INSERT được thực thi bất cứ khi nào có thao tác chèn thêm dữ liệu vào một bảng

 trigger INSERT thực thi các thao tác dưới đây:

 Chèn một bản sao của hàng mới vao bảng

Inserted.

Kiểm tra hàng mới trong bảng Inserted, để xác

định xem dữ liệu được chèn vào có hợp lệ hay không

 Nếu tìm thấy các giá trị trong hàng chèn vào phù hợp điều kiện chỉ ra, chèn chúng vào trong bảng trigger

Trang 17

Các Trigger INSERT

Trang 18

Các Trigger UPDATE

 Một trigger UPDATE được thực hiện khi một tác vụ cập nhật thực thi trên bảng

 Nó thực thi các tác vụ dưới đây:

 Di chuyển hàng dữ liệu gốc vào bảng logic

Trang 19

PRINT ‘You cannot modify the payment

terms for an order’

ROLLBACK TRANSACTION

END

Trang 20

Column-level UPDATE

Triggers Contd…

Trang 21

PRINT ‘You cannot assign a discount

greater than 12 percent’

ROLLBACK TRANSACTION

END

Trang 22

Các Trigger UPDATE

mức bảng

Trang 23

Chèn các hàng được xoá vào bảng Deleted.

Kiểm tra các hàng trong bảng Deleted để xác định

các tác vụ trigger sẽ được thực hiện như thế nào

Trang 25

Các Trigger DELETE

Trang 26

Các lệnh SQL ko thể sử dụng

Trong Trigger

Trang 27

trigger dây chuyền

 Các trigger dây chuyền được sử dụng để bắt buộc sự toàn vẹn trong tham chiếu

 Khi một thay đổi xuất hiện trong một bảng, các

trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan

 các trigger không thể được sử dụng để thực hiện việc cập nhật dây chuyền hoặc xoá mà ảnh hưởng đến các ràng buộc của cac khoá chính và khoá ngoài

 Các trigger được thực hiện sau khi các ràng buộc

được kiểm tra; nếu một tác vụ bỏ qua một ràng buộc, trigger không được thực thi

Trang 28

trigger lồng nhau

 Các trigger lồng nhau khi một tác vụ trong một trigger này khởi tạo một trigger khác, và tới lượt nó có thể lại khởi tạo một trigger khác nữa và cứ như vậy

 Các trigger có thể lồng nhau tới 32 mức

 Để cho phép lồng các trigger, chúng ta sử dụng thủ

tục lưu hệ thống sp_configure như sau:

sp_configure ‘nested trigger’, 1

 Để ko cho phép các trigger lồng nhau, chúng ta thực hiện lệnh dưới đây:

sp_configure ‘nested trigger’, 0

Trang 29

Các Trigger INSTEAD OF

 Một trigger INSTEAD OF chứa đoạn mã thay thế các

lệnh thao tác với cơ sở dữ liệu gốc

 Các trigger INSTEAD OF hữu dụng nhất khi việc sửa

đổi dữ liệu được thực thi trên view mà chúng không

thể cập nhật theo cách thông thường

 Các trigger INSTEAD OF có thể dựa trên chỉ một tác

vụ sửa đổi dữ liệu

Trang 31

DELETE employee WHERE emp_id IN

(SELECT emp_id FROM DELETED)

Trang 32

Các Trigger và Hiệu suất

 Chi phí dành cho các trigger là nhỏ

 Hầu hết thời gian đòi hỏi để chạy một trigger là dành cho việc tham chiếu đến các bảng khác, có thể nằm

trong các thiết bị cơ sở dữ liệu

Các bảng Deleted và Inserted luôn có mặt trong bộ

nhớ

Trang 33

 Lệnh CREATE TRIGGER được sử dụng để tạo một trigger.

Các trigger truy nhập tới các bảng logic Inserted và Deleted Các bảng này chứa các hình ảnh của dữ liệu

trước đó, và sau quá trình cập nhật

Trang 34

Tổng kết

 Các kiểu trigger:

 INSERT: Thực hiện mỗi khi xuất hiện việc thêm mới

dữ liệu vào bảng Các trigger này đảm bảo rằng dữ liệu được chèn vào bảng là hợp lệ

 UPDATE: Thực hiện khi một tác vụ cập nhật xảy ra

trên một bảng Các trigger này có thể được thi hành ở mức bảng hoặc mức cột

 DELETE: Thực hiện khi dữ liệu được xoá khỏi một

bảng

 Các trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan, nếu một thay đổi xuất hiện trong một bảng

Trang 35

Tổng kết

 Các trigger lồng nhau khi một tác vụ trong một trigger này khởi tạo một trigger khác, và tới lượt nó có thể lại khởi tạo một trigger khác nữa và cứ như vậy

 Thủ tục lưu hệ thống sp_configure được sử dụng để cho phép hoặc không cho phép lồng các trigger

 trigger INSTEAD OF chứa đoạn mã thay thế các lệnh thao tác với dữ liệu gốc

 Các trigger INSTEAD OF hữu dụng khi việc sửa đổi dữ liệu được thực hiện trên view mà chúng không thể cập nhật theo cách thông thường

 Thời gian đòi hỏi để thực thi một trigger chủ yếu dành nhiều cho việc tham chiếu đến các bảng khác hơn là dành

Ngày đăng: 07/09/2012, 09:27

HÌNH ẢNH LIÊN QUAN

 Mô tả các bảng Inserted và Deleted được sử dụng bởi trigger - Các trigger - bài giảng
t ả các bảng Inserted và Deleted được sử dụng bởi trigger (Trang 5)
Sử dụng bảng Inserted và Deleted - Các trigger - bài giảng
d ụng bảng Inserted và Deleted (Trang 13)
 Chèn một bản sao của hàng mới vao bảng - Các trigger - bài giảng
h èn một bản sao của hàng mới vao bảng (Trang 15)
 Di chuyển hàng dữ liệu gốc vào bảng logic - Các trigger - bài giảng
i chuyển hàng dữ liệu gốc vào bảng logic (Trang 18)
 Xoá các hàng từ bảng trigger. - Các trigger - bài giảng
o á các hàng từ bảng trigger (Trang 23)
 Khi một thay đổi xuất hiện trong một bảng, các trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan - Các trigger - bài giảng
hi một thay đổi xuất hiện trong một bảng, các trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan (Trang 27)
 Các bảng Deleted và Inserted luôn có mặt trong bộ nhớ  - Các trigger - bài giảng
c bảng Deleted và Inserted luôn có mặt trong bộ nhớ (Trang 32)
 Các trigger truy nhập tới các bảng logic Inserted và - Các trigger - bài giảng
c trigger truy nhập tới các bảng logic Inserted và (Trang 33)
 Các trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan, nếu một thay đổi xuất hiện trong một bảng. - Các trigger - bài giảng
c trigger dây chuyền sửa đổi dữ liệu trong các bảng liên quan, nếu một thay đổi xuất hiện trong một bảng (Trang 34)

TỪ KHÓA LIÊN QUAN

w