Lệnh TRUNCATE TABLE được dùng làm xóa tất cả bản ghi từ là một bảng trong SQL Server. Lệnh này vận động tựa như nlỗi lệnh DELETE cơ mà không tồn tại mệnh đề WHERE.

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

Cú pháp lệnh TRUNCATE TABLE trong SQL Server

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

Tên đổi thay hoặc giá trị biến

ten_CSDL

Tùy chocnj. Nếu được hướng đẫn thì đây là thương hiệu của đạ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 trang bị hay là không gian tên) nhưng bảng đó nằm trong về.

ten_bang

Bảng mà lại bạn muốn xóa bạn dạng ghi.

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

Tùy lựa chọn và chỉ có thể sử dụ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 nhưng bạn có nhu cầu xóa vào bảng này. Để xóa các vùng, cần sử dụng vệt phẩy phân tách bóc những giá trị hoặc khoảng chừng giá trị số phân vùng. Nếu cần sử dụng mệnh đề này với bảng không phân vùng thì SQL 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 bạn dạng của SQL Server.


Lưu ý

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

Ví dụ

Trong SQL Server, câu hỏi xóa toàn bộ bạn dạng ghi là biện pháp nhanh khô duy nhất trường hợp không lo phải mang lại tài liệu. Nếu bảng bị TRUNCATE, vấn đề xóa những mặt hàng sẽ không còn được đánh dấu yêu cầu không thể trở lại thao tác làm việc trước. TRUNCATE cũng dễ rộng xóa bảng bởi lệnh DROPhường tuyệt tạo ra new bằng CREATE. Cùng coi ví dụ tiếp sau đây.

TRUNCATE TABLE nhanvien;lấy ví dụ như này vẫn xóa cục bộ bạn dạng ghi trong bảng nhanvien.

Lệnh trên tương đương với lệnh DELETE tiếp sau đây.

Xem thêm: " Quan Trắc Môi Trường Tiếng Anh Là Gì, Bạn Đã Biết Chưa, Quan Trắc Môi Trường

DELETE FROM nhanvien;Cả 2 lệnh bên trên các xóa tất cả dữ liệu trong bảng nhanvien. Khác nhau ở vị trí là cùng với lệnh DELETE bạn có thể quay về làm việc trước khi xóa nếu như muốn còn cùng với TRUNCATE thì ko.


Cùng xem ví dụ không giống mang tên của các đại lý tài liệu.

TRUNCATE TABLE totn.danhba;lấy ví dụ này xóa toàn bộ bản ghi của bảng danhba vào cơ sở tài liệu có tên totn.

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

Nếu hy vọng xóa bản ghi của một hoặc 1 số ít vùng, hãy 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 những bảng phân vùng và lệnh TRUNCATE TABLE đang xóa những bạn dạng ghi theo vùng từ 1 tới 5 và vùng 7 trên bảng này.

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

Hỏi: Có thể lùi đại lý tài liệu về trạng thái cũ (rollback) sau khi thực hiện lệnh TRUNCATE TABLE trong SQL Server không?

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

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

cot1 ----------123Như vậy, đã đưa lại tâm trạng cửa hàng dữ liệu về tinh thần cũ cùng 3 phiên bản ghi vẫn vị trí bang_kiểm tra.

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 *