intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 9 Các trigger

Chia sẻ: Hoang Minh Minh | Ngày: | Loại File: PPT | Số trang:35

112
lượt xem
36
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các trigger Chương 9 .Review  Thủ tục lưu  Một thủ tục lưu là một tập hợp các câu lệnh SQL chưa biên dịch.  Người phát triển cơ sở dữ liệu hoặc người quản trị viết ra các thủ tục

Chủ đề:
Lưu

Nội dung Text: Bài 9 Các trigger

  1. Các trigger Chương 9
  2. Review  Thủ tục lưu  Một thủ tục lưu là một tập hợp các câu lệnh SQL chưa biên dịch.  Người phát triển cơ sở dữ liệu hoặc người quản trị viết ra các thủ tục lưu để thực thi các nhiệm vụ quản trị thông thường hoặc để áp dụng cho những quy tắc xử lỹ dữ liệu phức tạp. Thủ tục lưu chứa các câu lệnh thao tác với dữ liệu hoặc các câu lệnh nhận dữ liệu trả về.  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.
  3. Review  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. 
  4. Review  Có ba cách để biên dịch lại các thủ tục lưu: Sử dụng thủ tục lưu hệ thống sp_recompile  Chỉ định WITH RECOMPILE với lệnh CREATE  PROCEDURE 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 
  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 
  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. 
  7. Các trigger Allen Mark Brian Carl Cathy Kathy Greg Derek
  8. Các trigger Allen Mark Brian Carl Trigger Fired Cathy Kathy Greg Derek Derek Inserted
  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 
  10. Tạo Trigger Trigger  có  thể  được  tạo  bằng  công  cụ  Enterprise   Manager, hoặc Query Analyzer.   Trong cả hai trường hợp, câu lệnh CREATE TRIGGER  được sử dụng để tạo ra trigger.   Cú pháp: CREATE TRIGGER Trigger_name ON table FOR [DELETE, INSERT, UPDATE] [WITH ENCRYPTION] AS Sql_statements
  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ì. 
  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. 
  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.
  14. Các kiểu Trigger
  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 .
  16. Các Trigger INSERT Ví dụ:  CREATE TRIGGER CheckRoyalty ON roysched FOR INSERT AS IF (SELECT royalty FROM inserted) > 30 BEGIN PRINT ‘RoyaltyTrigger: Royalty cannot exceed 30’ PRINT ‘Change the royalty to a value less than 30’ ROLLBACK TRANSACTION END
  17. Các Trigger INSERT
  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  Deleted.   Chèn  một  hàng  mới  vào  bảng  Inserted,  và  bảng  trigger.   Tính  toán  các  giá  trị  trong  các  bảng  Deleted  và  Inserted để xác định can thiệp cần thiết.   Các trigger UPDATE có thể  được tạo ra  để xác nhận  việc  cập  nhật  trên  một  cột  đơn,  hoặc  trên  toàn  bộ  bảng. 
  19. Các Trigger UPDATE  mức cột Ví dụ:  CREATE TRIGGER NoUpdatePayterms ON sales FOR UPDATE AS IF UPDATE (payterms) BEGIN PRINT ‘You cannot modify the payment terms for an order’ ROLLBACK TRANSACTION END
  20. Column­level UPDATE  Triggers Contd…
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2