Trigger là một thuật ngữ quen thuộc đối với những người học về Ngôn ngữ truy vấn dữ liệu SQL. Tuy nhiên, đối với người mới học thì đây sẽ là một thuật ngữ xa lạ và khá khó hiểu. Cùng làm rõ hơn về Trigger là gì cùng các thông tin chi tiết nhất về Trigger trong bài viết sau nhé!

Contents
Thuật ngữ Trigger là gì trong SQL?
Là một thuật ngữ được dùng trong SQL, vậy trước hết SQL là gì?
SQL chỉ một dạng ngôn ngữ lập trình, còn được biết đến là Ngôn ngữ truy vấn có cấu trúc, được sử dụng để phục vụ cho việc xử lý và lưu trữ thông tin trong cơ sở dữ liệu quan hệ.
Trigger là một thủ tục trong SQL, nó được thực hiện khi có sự xảy ra bất kỳ của: Update, Insert, Delete trên máy chủ.
Bên cạnh đó, Trigger trong SQL còn được hiểu là một dạng stored procedure đặc biệt. Chúng được thực thi tự động ngay khi có sự kiện khiến cho các dữ liệu bị thay đổi và không có sự xuất hiện của tham số.
Trigger được quản lý và lưu trữ trên Server DB, được sử dụng trong trường hợp muốn kiểm tra các ràng buộc vẹn toàn trong DB.
Các lớp của Trigger trong SQL
Trigger trong SQL server có hai lớp chính:
DDL Trigger (Data Definition Language): Được sử dụng khi có các sự kiện thay đổi cấu trúc như sửa đổi, tạo, loại bỏ bảng… hoặc các sự kiện khác như thay đổi bảo mật hoặc cập nhật số liệu thống kê.
DML Trigger (Data Modification Language):Được sử dụng khi có các sự kiện như một câu lệnh sửa đổi dữ liệu (câu lệnh chèn, xóa hoặc cập nhật trên bảng) Đây là loại Trigger được sử dụng nhiều nhất hiện nay.
Cách sử dụng Trigger trong SQL như thế nào?
Trigger trong SQL Server được sử dụng để kiểm tra các quan hệ ràng buộc(check constraints) giữa nhiều bảng (table) hoặc kiểm tra trên nhiều dòng (record) khác nhau của bảng.

Dưới đây là một số trường hợp cụ thể Trigger được sử dụng trong SQL:
- Kiểm tra mối quan hệ giữa các bảng hoặc nhiều dòng trong bảng với nhau
- Dùng để ngăn chặn thao tác xóa các dữ liệu quan trọng
- Trigger được sử dụng để có các hàm chạy ngầm, phục vụ một số trường hợp cụ thể của người dùng.
Ưu và Nhược điểm của Trigger trong SQL
Ưu điểm
Những ưu điểm của Trigger có thể kể đến như:
- Viết code đơn giản. Trigger về cơ bản đã được mã hóa như Stored Procedure, do đó giúp cho quá trình bắt đầu làm việc với Trigger trở nên thuận tiện, dễ dàng và nhanh chóng hơn bao giờ hết.
- Trigger có đến 32 cấp độ lồng vào nhau, Trigger được cho là lồng vào nhau khi nó thực hiện hành động kích hoạt Trigger khác
- Hỗ trợ người dùng gọi các Hàm lưu trữ, Stored Procedure trong một Trigger
- Trigger được ứng dụng để thực thi vẹn toàn tham chiếu dữ liệu
- Việc tạo Trigger trong SQL Server trở nên hữu ích hơn khi người dùng thêm xác nhận các dữ liệu thêm hoặc mới được cập nhật theo batch.
- Hữu ích trong các trường hợp các sự kiện xảy ra khi có sự điều chỉnh dữ liệu như thêm vào, cập nhật, xóa dữ liệu
- Thông qua CLR Trigger , người dùng được phép làm Trigger bằng cách tận dụng code bên ngoài. Đây là giúp chỉ định phương thức hợp ngữ được viết bằng .NET có sự liên kết với Trigger
Nhược điểm
- Trigger không hiển thị ở giao diện mà chỉ hoạt động ngầm trong cơ sở dữ liệu. Do đó khi xảy ra vấn đề ở tần cơ sở dữ liệu thì rất khó chỉ ra được.
- Trigger chỉ đóng một phần vai trò trong cơ sở dữ liệu, nó không thể thay thế cho hoạt động này hoàn toàn
- Trigger cũng là một yếu tố làm cho hệ thống làm việc bị chậm lại bởi hoạt động chính của nó là cập nhật bảng dữ liệu, làm tăng lên khối lượng công việc cho cơ sở dữ liệu
Cú pháp của Trigger trong SQL Server

Cu phap cua Trigger
Cú pháp của Trigger sẽ có dạng như sau:
CREATE TRIGGER <Tên Trigger>
ON <Tên bảng>
{FOR | AFTER | INSTEAD OF} {[INSERT] [,] [UPDATE] [,] [UPDATE]}
AS
<Câu lệnh>
Trong đó:
- <Câu lệnh> là một hoặc một chuỗi lệnh. Câu lệnh này sẽ được thực hiện khi thời điểm kích hoạt được xác định (INSERT, FOR, UPDATE,…).
- FOR và AFTER sẽ thực thi Trigger sau khi câu lệnh kích hoạt kết thúc.
- INSTEAD OF: được sử dụng để thay thế cho câu lệnh kích hoạt, giúp cho việc tham chiếu chéo toàn vẹn dữ liệu.
- INSERT, UPDATE, UPDATE lệnh được sử dụng để kích hoạt cho Trigger khi chạy có thể dùng một hoặc nhiều tùy chọn.
Do Trigger được chạy một cách tự động, nên bạn có thể ứng dụng như sau:
- Update các giá trị trong bảng giúp thực hiện các thao tác bổ sung sau khi chèn.
- Kích hoạt Insert xong có thể thêm một số câu lệnh đi kèm sau khi đã chèn
- Cập nhật các giá trị sau khi đã xóa xong
- Kiểm tra các bản ghi liên quan trước đó
Thông thường, mọi người chỉ sử dụng Trigger cho các hoạt động Update, Insert và Delete. Việc hoạt động ngầm của Trigger đôi khi sẽ khiến hệ thống chậm lại, do đó không phải cơ sở dữ liệu nào cũng nên dùng Trigger nhé!
Như vậy trên đây là những thông tin chi tiết nhất về Trigger là gì và cũng như những ứng dụng và ưu nhược điểm của Trigger trong SQL Server dành cho bạn. Mong rằng những thông tin trên hữu ích và nếu bạn đang muốn bắt đầu với công việc Tester thì có thể tham khảo ngay Khóa học Tester cho người mới bắt đầu của chúng tôi nhé!