- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
- [C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
- [C#] Thiết kế ứng dụng Single Instance và đưa ứng dụng lên trước nếu kiểm tra ứng dụng đang chạy
- [C#] Giới thiệu JSON Web Token và cách đọc chuỗi token
- [C#] Cách tăng giảm font chữ tất cả các control trên winform
- [DEVEXPRESS] Tích hợp chức năng Tìm kiếm Search vào CheckedComboboxEdit
- [C#] Gởi email Metting Calendar Reminder kèm nhắc thời gian lịch họp
- [C#] Tìm kiếm xem danh sách từ khóa có tồn tại trong đoạn văn bản hay không
- [C#] Thiết kế giao diện ứng dụng trên Console sử dụng thư viện Terminal.Gui
- [C#] Hướng dẫn tạo mã VietQR Payment API Winform
- [C#] Sử dụng thư viện BenchmarkDotNet đo hiệu năng của hảm Method
- [DEVEXPRESS] Tìm kiếm không dấu tô màu highlight có dấu trên C# Winform
[DATABASE] Sự khác nhau giữa hai câu lệnh TRUNCATE vs DELETE trong sqlserver
Xin chào các bạn, bài viết hôm nay mình sẻ nói về sự khác nhau giữa hai từ khóa TRUNCATE và DELETE trong cơ sở dữ liệu Sqlserver.
[DATABASE] Sự khác nhau giữa TRUNCATE vs DELETE trong SQL
Cả hai câu lệnh DELETE với TRUNCATE đều mang lại kết quả là xóa data của một bảng, tuy nhiên nếu đào sâu vào kết quả chúng lại có rất nhiều điểm khác nhau.
TRUNCATE là câu lệnh DDL, vậy nên đối tượng của nó là bảng. DELETE là câu lệnh DML nên đối tượng của nó là các dòng dữ liệu trong bảng.
1.TRUNCATE: TRUNCATE là một tuyên bố không ghi nhật ký (non-logged statement), nghĩa là nó không ghi lại mỗi thao tác xóa trong giao dịch nhật ký.
Điều này dẫn đến một số ưu điểm:
- TRUNCATE nhanh hơn DELETE: Do không cần ghi lại các hoạt động trong nhật ký, TRUNCATE thường nhanh hơn DELETE, đặc biệt là khi xóa một lượng lớn dữ liệu.
- Không có khả năng phục hồi: Vì TRUNCATE không ghi lại trong nhật ký, không thể hoàn tác thao tác TRUNCATE đã được thực hiện. Dữ liệu bị mất sẽ không thể khôi phục lại.
- Không kích hoạt trigger: Khi sử dụng TRUNCATE, các trigger (khi có) không được kích hoạt. Điều này có thể là một lợi ích hoặc hạn chế, phụ thuộc vào yêu cầu của ứng dụng.
Lưu ý: Trong câu lệnh TRUNCATE bạn chỉ có thể xóa hết dữ liệu của một bảng, không thể kết hợp với mệnh đề WHERE để xóa bảng dữ liệu có điều kiện.
2. DETELE
DELETE là một tuyên bố ghi nhật ký (logged statement), điều này có một số tác động quan trọng:
- Chậm hơn so với TRUNCATE: Do phải ghi lại các thao tác xóa trong nhật ký, DELETE thường chậm hơn TRUNCATE, đặc biệt là khi xóa một lượng lớn dữ liệu.
- Có khả năng phục hồi: Vì DELETE ghi lại trong nhật ký, thao tác DELETE có thể được hoàn tác bằng cách sử dụng các điểm phục hồi hoặc khôi phục từ bản sao dự phòng.
- Kích hoạt trigger: DELETE sẽ kích hoạt các trigger (khi có) trên bảng. Điều này cho phép thực hiện các hành động phụ hoặc xử lý dữ liệu liên quan.
Ví dụ: Giả sử chúng ta có một bảng "Employees" với các cột "EmployeeID", "FirstName" và "LastName" chứa thông tin nhân viên. Ta muốn xóa tất cả các dòng dữ liệu từ bảng này.
- Sử dụng TRUNCATE:
TRUNCATE TABLE Employees;
2. Sử dụng DELETE:
DELETE FROM Employees;
Cả hai câu lệnh trên sẽ xóa tất cả các dòng dữ liệu từ bảng "Employees".
Tuy nhiên, như đã đề cập, TRUNCATE có thể nhanh hơn DELETE và không ghi lại trong nhật ký, trong khi DELETE chậm hơn và ghi lại trong nhật ký, cho phép khôi phục lại dữ liệu nếu cần.
Lưu ý rằng TRUNCATE và DELETE đều là những thao tác mạnh mẽ và có thể xóa hoặc làm mất dữ liệu quan trọng. Hãy đảm bảo bạn đã sao lưu dữ liệu trước khi thực hiện các thao tác này và hãy cẩn thận khi sử dụng chúng.
Thanks for watching!