Lệnh TRUNCATE TABLE được dùng để xóa toàn bộ phiên bản ghi từ là 1 bảng trong Squốc lộ Server. Lệnh này chuyển động tựa như như lệnh DELETE tuy vậy không có mệnh đề WHERE.

Bạn đang xem: Truncate table là gì

Cú pháp lệnh TRUNCATE TABLE trong Squốc lộ Server

TRUNCATE TABLE ten_bang< WITH (PARTITIONS (so_phanvung | so _phanvung TO so _phanvung ) > ;

Tên đổi thay hoặc cực hiếm biến

ten_CSDL

Tùy chocnj. Nếu được hướng dẫn và chỉ định thì đây là tên của các đại lý tài liệu.

ten_scheme

Tùy chọn. Đây là tên gọi của schema (tạm thời dịch là lược thứ hay không gian tên) mà bảng kia ở trong về.

ten_bang

Bảng nhưng bạn có nhu cầu xóa bản ghi.

WITH (PARTITIONS (so_phanvung | so _phanvung TO so _phanvung )

Tùy chọn và chỉ có thể dùng cùng với bảng phân vùng (partition). Nếu được chỉ định và hướng dẫn, so_phanvung là số của vùng mà lại bạn có nhu cầu xóa trong bảng này. Để xóa những vùng, sử dụng vết phẩy phân bóc tách các cực hiếm hoặc khoảng cực hiếm số phân vùng. Nếu cần sử dụng mệnh đề này cùng với bảng ko phân vùng thì Squốc lộ Server vẫn báo lỗi. Tính năng này không tồn tại vào tất cả những phiên phiên bản của Squốc lộ Server.


Lưu ý

Nếu xóa toàn bộ phiên bản ghi vào bảng, bộ đếm ngơi nghỉ hồ hết cột từ đội giá trị (indentity column) sẽ ảnh hưởng tái diễn từ đầu.Không thể xóa toàn bộ bạn dạng ghi trong bảng được tham mê chiếu bởi Foreign Key.Trước khi xóa tổng thể phiên bản ghi vào bản, cần gồm quyền ưu tiên như ALTER TABLE.

Ví dụ

Trong SQL Server, vấn đề xóa toàn bộ bạn dạng ghi là phương pháp nkhô nóng tốt nhất giả dụ không ngại đề xuất lấy lại dữ liệu. Nếu bảng bị TRUNCATE, bài toán xóa các sản phẩm sẽ không được lưu lại nên quan trọng quay về làm việc trước. TRUNCATE cũng dễ dàng hơn xóa bảng bởi lệnh DROPhường hay sinh sản new bằng CREATE. Cùng coi ví dụ dưới đây.

TRUNCATE TABLE nhanvien;lấy ví dụ này đang xóa toàn thể bản ghi vào bảng nhanvien.

Lệnh bên trên tương đương cùng với lệnh DELETE sau đây.

Xem thêm: Các SiêU Anh Hùng Của ‘ Justice League Là Gì, Liên Minh Công Lý (Phim)

DELETE FROM nhanvien;Cả 2 lệnh bên trên đều xóa tất cả tài liệu vào bảng nhanvien. Khác nhau ở đoạn là cùng với lệnh DELETE chúng ta có thể trở lại làm việc trước khi xóa nếu còn muốn còn với TRUNCATE thì không.


Cùng xem ví dụ khác mang tên của cơ sở tài liệu.

TRUNCATE TABLE totn.danhba;ví dụ như này xóa toàn bộ phiên bản ghi của bảng danhba trong đại lý tài liệu có tên totn.

ví dụ như cùng với phân vùng

Nếu ao ước xóa bản ghi của 1 hoặc 1 số vùng, hãy cần sử dụng lệnh TRUNCATE TABLE kèm mệnh đề WITH PARTITIONS.

TRUNCATE TABLE nhanvienWITH (PARTITIONS (1 TO 5, 7) );

Ở ví dụ này, bảng nhanvien là một trong bảng phân vùng cùng lệnh TRUNCATE TABLE đã xóa những bạn dạng ghi theo vùng từ là một tới 5 cùng vùng 7 trên bảng này.

Câu hỏi thường xuyên gặp

Hỏi: cũng có thể lùi đại lý dữ liệu về tinh thần cũ (rollback) sau khoản thời gian thực hiện lệnh TRUNCATE TABLE vào Squốc lộ Server không?

Trả lời: Lệnh TRUNCATE TABLE rất có thể rollback được bằng cách sử dụng sự chuyển tiếp giữa (transaction). lấy ví dụ nlỗi sau đây.

CREATE TABLE bang_thử nghiệm (cot1 int);INSERT INTO bang_kiểm tra VALUES (1);INSERT INTO bang_demo VALUES (2);INSERT INTO bang_chạy thử VALUES (3);-- Tạo chuyển tiếpBEGIN TRAN;-- Xóa bản ghi vào bảngTRUNCATE TABLE dbo.bảng_test;-- Rollbaông xã bảng sẽ xóa bản ghiROLLBACK;SELECT * FROM bang_test;Lệnh SELECT nói trên sẽ trả về công dụng là những bạn dạng ghi tiếp sau đây.

cot1 ----------123Như vậy, đã đưa lại tinh thần đại lý dữ liệu về trạng thái cũ với 3 bản ghi vẫn nằm tại bang_test.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *