Trigger AFTER (DML)

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Florin Angelescu

Instructor

Định nghĩa và thuộc tính

  • Thực hiện một loạt hành động khi được kích hoạt
  • Chỉ chạy sau khi sự kiện DML hoàn tất
  • Dùng với INSERT, UPDATE, DELETE cho bảng hoặc view
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Điều kiện tiên quyết của trigger AFTER

  • Cần bảng hoặc view cho câu lệnh DML
  • Trigger sẽ gắn vào cùng bảng đó

Kết quả từ bảng Products dùng cho ví dụ này:

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Điều kiện tiên quyết của trigger AFTER

  • Bảng đích
  • Mô tả trigger
  • Sự kiện kích hoạt (DML)
  • Tên trigger
  • Products
  • Lưu thông tin sản phẩm bị xóa vào bảng lịch sử
  • DELETE
  • TrackRetiredProducts
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Tóm tắt điều kiện tiên quyết của trigger AFTER

Khi các hàng bị xóa khỏi bảng Products...

Lưu thông tin cần thiết từ các hàng đó vào bảng RetiredProducts.

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Định nghĩa trigger AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Bảng "inserted" và "deleted"

  • Bảng đặc biệt dùng cho trigger DML
  • SQL Server tự động tạo
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Bảng "inserted" và "deleted"

  • Bảng đặc biệt dùng cho trigger DML
  • SQL Server tự động tạo
Bảng đặc biệt INSERT UPDATE DELETE
inserted hàng mới hàng mới N/A
deleted N/A hàng cập nhật hàng bị xóa
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Trigger AFTER hoàn chỉnh

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Ayo berlatih!

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Preparing Video For Download...