Trigger là gì? Trình kích hoạt đóng vai trò gì trong SQL Server? Những ưu và nhược điểm cụ thể là gì? Bạn có biết cách tạo trình kích hoạt trong SQL không? Bài viết dưới đây của norfolk-by-design.com sẽ cung cấp cho bạn những thông tin cần thiết và chính xác nhất về những thắc mắc này.
I. Trigger là gì?
Trình kích hoạt SQL là gì? Trình kích hoạt SQL là mã thủ tục chỉ kích hoạt khi một sự kiện xảy ra. Các loại sự kiện khác nhau có sẵn để bạn có thể kích hoạt trình kích hoạt trên máy chủ SQL của mình. Một số trong số chúng có thể đề cập đến việc chèn hàng vào bảng, làm lại/thay đổi cấu trúc bảng, đăng nhập vào phiên bản máy chủ mới, v.v.
Các tính năng chính khiến trình kích hoạt SQL khác với thủ tục được lưu trữ là: Người dùng không thể tạo trình kích hoạt theo cách thủ công. Trình kích hoạt không có cơ hội lấy thông số. Người dùng không thể khôi phục giao dịch bằng trình kích hoạt.
Vấn đề không thể sử dụng các tham số không phải là hạn chế của việc có thể truy xuất thông tin từ các sự kiện. Người dùng có một cách khác để lấy thông tin từ các sự kiện.
II. Cấu trúc của Trigger
Người dùng phải chỉ định thời gian kích hoạt. BEFORE được sử dụng để xử lý hành động trước khi thay đổi và AFTER được sử dụng khi phải xử lý hành động sau thay đổi. Sự kiện có thể là một phần tử INSERT, UPDATE hoặc DELETE. Trình kích hoạt phải được liên kết với một bảng cụ thể, tại thời điểm đó, nó được xác định bằng từ khóa BẬT.
III. Có mấy lớp Trigger
1. Kích hoạt DDL DDL là viết tắt của
Ngôn ngữ định nghĩa dữ liệu. Trình kích hoạt DDL tăng các sự kiện khi cấu trúc thay đổi, chẳng hạn như tạo, thay đổi hoặc xóa bảng. Nó cũng có thể xuất hiện trong các sự kiện liên quan đến máy chủ (thay đổi bảo mật, cập nhật số liệu thống kê). Trình kích hoạt DML DML là viết tắt của Ngôn ngữ sửa đổi dữ liệu.
2. Trình kích hoạt
DML hiện là loại trình kích hoạt phổ biến nhất và được sử dụng nhiều nhất. Tại thời điểm này, trình kích hoạt là một lệnh sửa đổi dữ liệu. Đây có thể là câu lệnh INSERT, cập nhật bảng hoặc xóa bảng.
Ngoài ra còn có các loại trigger DML khác như: FOR OR AFTER [INSERT, UPDATE, DELETE]: Được sử dụng sau khi lệnh trigger kết thúc. INSTEAD OF [INSERT, UPDATE, DELETE]: Loại này hoàn toàn ngược lại với FOR (AFTER). Chúng được thực thi, nhưng không được sử dụng thay cho các câu lệnh kích hoạt.
Để hiểu rõ hơn, đây là loại trigger có thể thay thế một câu lệnh trigger. Điều này rất hữu ích khi người dùng yêu cầu tính toàn vẹn tham chiếu giữa các cơ sở dữ liệu.
IV. Vai trò của Trigger trong SQL Server
Một đặc điểm của cơ sở dữ liệu quan hệ là tính nhất quán của dữ liệu. Điều này có nghĩa là thông tin được lưu trữ trong cơ sở dữ liệu là nhất quán. Chúng nhất quán trong tất cả các phiên và giao dịch. Cách thức hoạt động của các công cụ cơ sở dữ liệu quan hệ (máy chủ SQL) thực thi khóa chính và khóa ngoại.
Trong SQL Server, nếu các bảng này thuộc về các cơ sở dữ liệu hoặc máy chủ khác nhau, thì người dùng không có cơ hội thực thi tính toàn vẹn tham chiếu của bảng bằng khóa ngoại.
Lúc này, cách xử lý duy nhất là sử dụng trigger trong SQL. Vậy khi nào trigger được sử dụng? Chúng thường được sử dụng khi cần kiểm tra cần thiết cho nhiều bảng hoặc hàng của bảng. Ngoài ra, sử dụng trigger cũng rất hữu ích với các chương trình có chức năng chạy ngầm.
Điều này rất hữu ích trong các trường hợp hạn chế. Nói chung, chúng tôi không sử dụng nó cho bất kỳ mục đích nào khác ngoài kinh doanh hoặc giao dịch. Điều này rất quan trọng vì nó ngăn dữ liệu nhạy cảm quan trọng bị xóa.
V. Đánh giá ưu nhược điểm của Trigger
1. Ưu điểm
Cần phải kể đến ưu điểm vượt trội của trigger. Khả năng bắt lỗi logic nghiệp vụ ở cấp cơ sở dữ liệu. Người dùng có thể sử dụng chúng thay vì hẹn giờ theo lịch trình. Kích hoạt cũng rất hiệu quả để kiểm soát những thay đổi xuất hiện trong bảng dữ liệu.
2. Nhược điểm
Bên cạnh những ưu điểm vượt trội, Trigger cũng có những hạn chế nhất định mà bạn cần lưu ý. Đây chỉ là khởi đầu của quá trình xác thực dữ liệu. Họ không thể thay thế hoàn toàn công việc này.
Trình kích hoạt hoạt động trong nền của cơ sở dữ liệu, không phải trong giao diện. Điều này gây khó khăn cho việc theo dõi những gì đang diễn ra ở tầng cơ sở dữ liệu. Trình kích hoạt thực hiện cập nhật bảng dữ liệu. Do đó, khối lượng công việc tăng lên và hệ thống hoạt động chậm lại.
Bài viết trên đây cung cấp thông tin và kiến thức về SQL trigger. Việc sử dụng trigger không bắt buộc nhưng nó thường được sử dụng cho nhiều mục đích cụ thể. Tôi hy vọng bài viết Trigger là gì này đã mang lại thông tin thực sự hữu ích.