Download app

Quét mã QR để tải về ứng dụng

QR code

Tìm hiểu Trigger trong SQL - Chức năng trong SQL Server là gì?

22/09/2021, 09:57 am
2,969

Trigger trong sql là một thuật ngữ khá quen thuộc với dân quản trị server. Để mang đến cho mọi người một kiến thức mới. Thì sau đây, Nhân Hòa sẽ trình bày chi tiết về Trigger trong sql là gì? Cùng tìm hiểu về trigger update trong sql và cách xóa trigger trong sql.

1. Trigger trong sql là gì?

Trigger trong sql là một stored procedure không có tham số. Stored procedure là tổng hợp các câu lệnh Transact-SQL. Mỗi khi lập trình viên muốn dùng thì gọi ra và thực thi chứ không cần gõ lại câu lệnh.

Trigger trong sql thường được thực thi ở phía server khi có một sự kiện xảy ra. Ví dụ như Insert (thêm mới), Update (cập nhật) hoặc Delete (Xóa) dữ liệu. Trigger được lưu trữ trong server DB và dùng trong khi muốn kiểm tra các ràng buộc vẹn toàn trong DB.

2. Cấu trúc lệnh trigger trong sql

Cú pháp chung của trigger như sau

Ví dụ trigger trong sql

3. Phân loại trigger trong sql

3.1. DDL trigger

DDL Trigger (Data Definition Language) là loại trigger kích hoạt khi muốn thay đổi cấu trúc dữ liệu. Ví dụ như tạo mới, sửa đổi hay xóa bảng. Ngoài ra còn dùng khi thay đổi bảo mật hoặc cập nhật thống kê của các sự kiện liên quan đến server.

3.2. DML trigger

DML trigger (Data Modification Language) là loại trigger được dùng khi chèn, xóa, hoặc cập nhật một câu lệnh trên bảng. Đây là loại trigger được sử dụng nhiều nhất vì sự kiện kích hoạt thường là câu lệnh sửa đổi dữ liệu.

Trong DML trigger cũng chia ra hai loại

- instead of [insert, update, delete]: Dùng để thay thế câu lệnh kích hoạt. Hữu ích khi yêu cầu tính toàn vẹn tham chiếu dữ liệu

- for hoặc after [insert, update, delete]: Loại trigger được thực thi sau khi câu lệnh kích hoạt kết thúc.

4. Trigger trong sql dùng để làm gì?

Thứ nhất, trigger dùng để kiểm tra ràng buộc của nhiều bảng hoặc nhiều dòng trên cùng một bảng.

Điều này cực kỳ quan trọng vì sql server không có cơ hội thực thi tính toàn vẹn tham chiếu giữa hai bảng nếu hai bảng nằm trong cơ sở dữ liệu khác nhau, hoặc khác server. Việc này chỉ có thể thực hiện bằng cách dùng trigger trong sql server.

Thứ hai, trigger giúp ngăn chặn việc xóa các dữ liệu quan trọng. Vì có thể backup lại dữ liệu sang các bảng khác khi dữ liệu bị xóa ngoài ý muốn.

Xem thêm: Cách import sql vào phpAdmin [HƯỚNG DẪN CHI TIẾT]

5. Ưu và nhược điểm của trigger trong sql

5.1. Ưu điểm

- Việc viết code cho các trigger trong sql rất đơn giản. Chúng thường được mã hóa giống như các stored procedure

- Việc tạo audit cơ bản bằng trigger cũng rất đơn giản. Bạn có thể tự xây một giải pháp chèn dữ liệu bảng đã xóa vào một bảng kiểm tra dữ liệu bằng câu lệnh xóa trigger trong sql. Hoặc dung trigger update trong sql.

- Có thể tùy ý call các store procedure và hàm được lưu trữ trong trigger

- Trigger tiện ích hơn khi muốn xác thực dữ liệu được thêm mới hoặc cập nhật hàng loạt.

- Trigger trong sql server hữu ích khi muôn vận hành tính vẹn toàn tham chiếu trên cơ sở dữ liệu

- Trigger có thể lồng đến 32 lớp trigger khác nhau

5.2. Nhược điểm

- Với thao tác chèn dữ liệu vào bảng bulk insert, bạn bắt buộc tùy chọn fire triggers để đảm bảo tính nhất quán của dữ liệu.

- Việc xác định các trigger rất khó vì nó không thể nhìn thấy đối với client

- Khi dùng DML trigger thì câu lệnh chỉ kết thúc khi quá trình thực thi hoàn tất. Việc này tiềm ẩn rất nhiều rủi ro.

- Khi đã sử dụng trigger trong sql để kiểm tra thì chúng sẽ thực thi bất cứ khi nào có câu lệnh kích hoạt. Một số trường hợp thì việc này là không cần thiết.

- Nếu có nhiều trigger lồng vào nhau thì việc gỡ lỗi và khắc phục sự cố rất khó. Tiêu tốn nhiều tài nguyên và thời gian xử lý.

- Sử dụng trigger tiềm ẩn nhiều nguy cơ về bảo mật. Vì người dùng độc hại có thể thêm các cụm CLR trigger vào cơ sở dữ liệu để chiếm quyền kiểm soát server.

- Khi sử dụng trigger trong sql, hệ thống có thể bị chạy chậm lại

Xem thêm: Hướng dẫn cài MySQL chi tiết nhất

6. Lời kết

Ở bài viết trên Nhân Hòa đã trình bày chi tiết về trigger trong sql là gì. Cách sử dụng trigger trong sql cũng như ưu và nhược điểm của thủ thuật này. Việc này hữu ích để bạn quản trị server tốt hơn. Chúc bạn thành công.

Bài viết liên quan
26/11/2024
Control Panel VPS là công cụ quan trọng giúp quản trị và tối ưu hoá hoạt động của máy chủ ảo (VPS). Với sự đa dạng...
20/11/2024
Các fan cứng của Nhân Hòa đã biết Chương trình Black Friday 2024 sẽ có mức ưu đãi khủng là bao nhiêu % và áp dụng cho những...
19/11/2024
Đừng để website của bạn bị "tắt đèn" vì hết hạn tên miền! Hãy chủ động gia hạn tên miền để đảm bảo sự liên...
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!