Danh mục

Hệ Quản Trị CSDL cơ bản

Số trang: 89      Loại file: ppt      Dung lượng: 2.74 MB      Lượt xem: 12      Lượt tải: 0    
thaipvcb

Hỗ trợ phí lưu trữ khi tải xuống: 21,000 VND Tải xuống file đầy đủ (89 trang) 0
Xem trước 9 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

...Trigger là một loại stored-proc đặc biệt, tự động thực thi khi một sự kiện diễn ra trong cơ sở dữ liệu ở server. Trigger được định nghĩa trên 1 bảng hay 1 view cụ thể. Trigger thường
Nội dung trích xuất từ tài liệu:
Hệ Quản Trị CSDL cơ bản Trigger là một loại stored-proc đặc biệt, tự động thực thi khi một sự kiện diễn ra trong cơ sở dữ liệu ở server. Trigger được định nghĩa trên 1 bảng hay 1 view cụ thể. Trigger thường được dùng khi cần đảm bảo tính toàn vẹn dữ liệu phức tạp mà các ràng buộc khác như Check, Assertion khó đạt được, với sự vượt trội về tính đúng đắn cao hơn Check và sự linh hoạt nhiều hơn Assertion. DML Trigger : thực thi khi dữ liệu bị thay đổi bởi 1 sự kiện DML thông qua các câu lệnh T-SQL INSERT, UPDATE, DELETE trên 1 bảng hay view. Thường được sử dụng trong thực tiễn để hiện thực các quy định… › Ví dụ: Trigger xuất ra 1 thông báo mỗi khi có một hóa đơn được lập… DDL Trigger : thực thi khi có các sự kiện DDL xảy ra trong cơ sở dữ liệu hay trên server, được gây ra bởi các câu lệnh T-SQL như CREATE, ALTER, DROP hay 1 số stored-proc hệ thống. Thường được sử dụng trong thực tiễn để kiểm tra, quản lý các thao tác được phép lên các đối tượng trên hệ thống. › Ví dụ: Trigger ngăn không cho phép DROP table nào trong hệ thống… Logon Trigger : thực thi khi 1 session của user đã được thiết lập, xác thực, và gọi sự kiện LOGON. › Ví dụ: Trigger giới hạn số session của cùng một LoginID, cùng lúc đăng nhập vào hệ thống là 2. Nếu vượt số này, các đăng nhập sau sẽ bị từ chối… SQL Server thiết lập 2 bảng tạm ảo trong lúc 1 DML Trigger đang thực thi, đó là Inserted và Deleted. Các bảng này chứa các dòng mới thêm vào (Inserted) hoặc đã bị xóa (Deleted) của bảng của trigger, lúc trigger khởi chạy. Các bảng này có cấu trúc như bảng của trigger.CâulệnhDML BảngtạmảoInserted BảngtạmảoDeleted Insert Cácdòngmớithêmvào Khôngtồntại Update Dữliệucũtrướccậpnhật Dữliệumớisaucậpnhật Delete Khôngtồntại Cácdòngđãbịxóa Thực thi khi dữ liệu bị thay đổi bởi 1 sự kiện DML thông qua các câu lệnh T-SQL INSERT, UPDATE, DELETE trên 1 bảng hay view. Có thể được gọi sau khi sự kiện hoàn tất hoặc thay thế sự kiện đó bằng hành động khác. Các trigger DML khi chạy có sử dụng các bảng tạm ảo là Inserted và Deleted (đã đề cập).Cú pháp:ác tham số:tên_schema.]tên_trigger : tham số bắt buộc, là tên của schemamà bảng của DML trigger nằm trong schema đó.› Ví dụ: dbo.trXemThongTinBangDeleted…ên_bảng hoặc tên_view : tham số bắt buộc, là tên bảng hoặcview mà DML trigger được gọi thực thi. View chỉ cho phép đối vớicác trigger Instead Of.ITH ENCRYPTION : tham số tùy ý, là lựa chọn mã hóa dữ liệuVí dụ WITH ENCRYPTION : Trigger DML lúc chưa mã hóa, vẫn xem được nội dung bằng sp_helptext :Ví dụ WITH ENCRYPTION : Trigger DML lúc đã mã hóa :ác tham số (tt):OR hoặc AFTER : tham số bắt buộc, không thể tạo trênview. Trigger khởi chạy khi các thao tác của sự kiện DMLđã thực hiện thành công (dù kết quả không có bảnghi(dòng) nào). Lúc này, các cập nhật tham chiếu cascadevà kiểm tra ràng buộc đã hoàn tất trước khi trigger khởichạy. Cho phép nhiều trigger cùng loại (Insert, Update,Delete) trên cùng 1 bảng.NSTEAD OF : tham số bắt buộc, có thể được tạo trên 1view. Trigger khởi chạy trước các hành động của sự kiệnDML, và thay thế các hành động không cho chúng thựcVí dụ AFTER:› Tạo 2 trigger cùng loại Delete trên cùng bảng KhachHang: 1 trigger xem thông tin đã bị xóa, và 1 trigger hiển thị thông báo đã xóa.Ví dụ INSTEAD OF: › Không cho phép tạo nhiều hơn 1 trigger Instead Of trên cùng 1 bảng KhachHangác tham số (tt):NSERT, UPDATE, DELETE : tham số bắt buộc, có thể thiết lậpđồng thời nhiều loại thao tác DML này.ITH APPEND : tham số tùy ý, không thể sử dụng chung vớiInstead Of hay After, hoặc có tham số EXTERNAL NAME. Thamsố này chỉ được sử dụng khi thiết lập tương thích của CSDL làthấp hơn 65 (nghĩa là SQL Server các phiên bản trước2000(70) ). Tham số cho biết trigger này được thêm vào khi đã cótrigger cùng loại tồn tại trên bảng của trigger.Ví dụ NOT FOR REPLICATION :› Để lưu vết khi quản lý khi INSERT vào bảng HOADON, ta viết 1 INSERT Trigger có FOR NOT REPLICATION mỗi khi INSERT một chi tiết hóa đơn thì ta thêm dòng đó vào một bảng lưu vết, giả sử là bảng LuuVet_HoaDon. Khi đó, mọi user khi INSERT ở bảng này thì Trigger sẽ thực thi INSERT thêm vào bảng LuuVet_HoaDon. Tuy nhiên, khi tạo bản sao gửi cho các đăng kí khác của CSDL, nếu ở các bản sao này xảy ra INSERT thì Trigger sẽ không khởi chạy, không thêm vào bảng LuuVet_HoaDon.ác tham số (tt):ác_câu_lệnh_SQL : tham số bắt buộc. Đây là các câulệnh SQL mang điều kiện và các xử lý của trigger. Nhữngcâu lệnh này quyết định xử lý của trigger đối với các sựkiện DML thao tác lên bảng/view của trigger. Hỗ trợ hầuhết các câu lệnh như stored-procedure…› Ví dụ: Tạo biến @TienNo, gán giá trị cho biến là tiền nợ của khách hàng mới Insert vào bảng KhachHang rồi in ra giá trị của biến @TienNo sau khi đã chuyển kiểu của biến về kiểu chuỗi kí tự . ...

Tài liệu được xem nhiều:

Tài liệu liên quan: