BẢNG TRUNCATE (Transact-SQL)

Bạn đang xem: cắt ngắn bảng trong sql

BẢNG TRUNCATE (Transact-SQL)

Trong bài viết này

Áp dụng cho: SQL Server (tất cả các phiên bản được hỗ trợ) Cơ sở dữ liệu Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Hệ thống phân tích nền tảng (PDW)

Xóa tất cả các hàng khỏi bảng hoặc các phân vùng được chỉ định của bảng mà không ghi nhật ký các lần xóa hàng riêng lẻ. TRUNCATE TABLE tương tự như câu lệnh DELETE không có mệnh đề WHERE; tuy nhiên, TRUNCATE TABLE nhanh hơn và sử dụng ít tài nguyên hệ thống và nhật ký giao dịch hơn.

Quy ước về cú pháp Transact-SQL

Cú pháp

  - Cú pháp cho SQL Server và Azure SQL Database
  
BẢNG TRUNCATE
    {database_name.schema_name.table_name | schema_name.table_name | table_name}
    [WITH (PARTITIONS ({& lt; partition_number_expression & gt; | & lt; range & gt;}
    [ , ...N ] ) ) ]
[; ]
  
& lt; phạm vi & gt; :: =
& lt; phân_lục_số_lượng & gt; ĐẾN & lt; phân vùng_số_thể_thể & gt;
 
  - Cú pháp cho Azure Synapse Analytics và Kho dữ liệu song song
  
BẢNG TRUNCATE {database_name.schema_name.table_name | schema_name.table_name | table_name}
[;]
 

Lưu ý

Để xem cú pháp Transact-SQL cho SQL Server 2014 trở về trước, hãy xem Tài liệu về các phiên bản trước .

Đối số

database_name

Là tên của cơ sở dữ liệu.

schema_name

Là tên của lược đồ chứa bảng.

table_name

Là tên của bảng cần cắt bớt hoặc từ đó tất cả các hàng bị xóa. table_name phải là một ký tự. table_name không được là hàm OBJECT_ID () hoặc một biến.

WITH (PARTITIONS ({& lt; partition_number_expression & gt; | & lt; range & gt;} [, … n]))

Áp dụng cho : SQL Server (SQL Server 2016 (13.x) đến phiên bản hiện tại )

Chỉ định các phân vùng để cắt bớt hoặc từ đó tất cả các hàng bị loại bỏ. Nếu bảng không được phân vùng, đối số WITH PARTITIONS sẽ tạo ra lỗi. Nếu mệnh đề WITH PARTITIONS không được cung cấp, toàn bộ bảng sẽ bị cắt bớt.

& lt; phân_lục_số_lượng & gt; có thể được chỉ định theo những cách sau:

  • Cung cấp số lượng của một phân vùng, ví dụ: WITH (PARTITIONS (2))

  • Cung cấp số phân vùng cho một số phân vùng riêng lẻ được phân tách bằng dấu phẩy, ví dụ: WITH (PARTITIONS (1, 5))

  • Cung cấp cả phạm vi và phân vùng riêng lẻ, ví dụ: WITH (PARTITIONS (2, 4, 6 TO 8))

  • & lt; phạm vi & gt; có thể được chỉ định dưới dạng số phân vùng được phân tách bằng từ TO , ví dụ: WITH (PARTITIONS (6 ĐẾN 8))

Để cắt bớt một bảng được phân vùng, bảng và các chỉ mục phải được căn chỉnh (được phân vùng trên cùng một chức năng phân vùng).

Nhận xét

So với câu lệnh DELETE, TRUNCATE TABLE có những ưu điểm sau:

  • Sử dụng ít không gian nhật ký giao dịch hơn.

    Câu lệnh DELETE xóa từng hàng một và ghi lại một mục nhập trong nhật ký giao dịch cho mỗi hàng đã xóa. TRUNCATE TABLE xóa dữ liệu bằng cách phân bổ các trang dữ liệu được sử dụng để lưu trữ dữ liệu bảng và chỉ ghi lại các phân bổ trang trong nhật ký giao dịch.

  • Thường sử dụng ít ổ khóa hơn.

    Khi câu lệnh DELETE được thực thi bằng cách sử dụng khóa hàng, mỗi hàng trong bảng sẽ bị khóa để xóa. TRUNCATE TABLE luôn khóa bảng (bao gồm khóa giản đồ (SCH-M)) và trang nhưng không khóa từng hàng.

  • Không có ngoại lệ, không có trang nào được để lại trong bảng.

    Sau khi câu lệnh DELETE được thực thi, bảng vẫn có thể chứa các trang trống. Ví dụ: không thể phân bổ các trang trống trong heap mà không có ít nhất một khóa bảng (LCK_M_X) độc quyền. Nếu thao tác xóa không sử dụng khóa bảng, bảng (heap) sẽ chứa nhiều trang trống. Đối với các chỉ mục, thao tác xóa có thể để lại các trang trống, mặc dù các trang này sẽ được xử lý nhanh chóng bằng quy trình dọn dẹp nền.

Xem Thêm  Đường viền CSS - đường viền văn bản đầu vào css

TRUNCATE TABLE xóa tất cả các hàng khỏi bảng, nhưng cấu trúc bảng và các cột, ràng buộc, chỉ mục, v.v. của nó vẫn còn. Để xóa định nghĩa bảng ngoài dữ liệu của nó, hãy sử dụng câu lệnh DROP TABLE .

Nếu bảng chứa cột nhận dạng, bộ đếm cho cột đó được đặt lại thành giá trị gốc được xác định cho cột. Nếu không có hạt giống nào được xác định, giá trị mặc định 1 được sử dụng. Để giữ lại bộ đếm danh tính, hãy sử dụng DELETE thay thế.

Lưu ý

Thao tác TRUNCATE TABLE có thể được khôi phục.

Hạn chế

Bạn không thể sử dụng TRUNCATE TABLE trên các bảng:

  • Được tham chiếu bởi một ràng buộc NGOẠI KHÓA. Bạn có thể cắt bớt một bảng có khóa ngoại tự tham chiếu.

  • Tham gia vào chế độ xem được lập chỉ mục.

  • Được xuất bản bằng cách sử dụng sao chép giao dịch hoặc sao chép hợp nhất.

  • Có phiên bản hệ thống tạm thời.

  • Được tham chiếu bởi một ràng buộc EDGE.

Đối với các bảng có một hoặc nhiều đặc điểm này, hãy sử dụng câu lệnh DELETE để thay thế.

BẢNG TRUNCATE không thể kích hoạt trình kích hoạt vì thao tác này không ghi nhật ký các lần xóa hàng riêng lẻ. Để biết thêm thông tin, hãy xem TẠO TRIGGER (Giao dịch-SQL) .

Trong Phân tích Azure Synapse và Hệ thống Nền tảng Analytics (PDW):

  • BẢNG TRUNCATE không được phép trong câu lệnh EXPLAIN.

  • BẢNG TRUNCATE không thể chạy trong giao dịch.

Xem Thêm  Pandas DataFrame - GeeksforGeeks - ví dụ về khung dữ liệu pandas python

Cắt bớt các bảng lớn

Microsoft SQL Server có khả năng loại bỏ hoặc cắt bớt các bảng có hơn 128 phạm vi mà không cần giữ khóa đồng thời trên tất cả các phạm vi cần thiết để loại bỏ.

Quyền

Quyền tối thiểu được yêu cầu là ALTER trên table_name. Các quyền TRUNCATE TABLE được mặc định cho chủ sở hữu bảng, thành viên của vai trò máy chủ cố định sysadmin db_owner db_ddladmin vai trò cơ sở dữ liệu cố định và không thể chuyển nhượng. Tuy nhiên, bạn có thể kết hợp câu lệnh TRUNCATE TABLE trong một mô-đun, chẳng hạn như một thủ tục được lưu trữ và cấp quyền thích hợp cho mô-đun bằng mệnh đề EXECUTE AS .

Ví dụ

A. Cắt bớt một bảng

Ví dụ sau đây xóa tất cả dữ liệu khỏi bảng JobCandidate . Các câu lệnh SELECT được đưa vào trước và sau câu lệnh TRUNCATE TABLE để so sánh kết quả.

  SỬ DỤNG AdventureWorks2012;
ĐI
CHỌN ĐẾM (*) AS BeforeTruncateCount
TỪ HumanResources.JobCandidate;
ĐI
BẢNG TRUNCATE HumanResources.JobCandidate;
ĐI
CHỌN COUNT (*) AS AfterTruncateCount
TỪ HumanResources.JobCandidate;
ĐI
 

B. Cắt ngắn các phân vùng trong bảng

Áp dụng cho : SQL Server (SQL Server 2016 (13.x) đến phiên bản hiện tại )

Ví dụ sau cắt bớt các phân vùng được chỉ định của một bảng được phân vùng. Cú pháp WITH (PARTITIONS (2, 4, 6 TO 8)) khiến số phân vùng 2, 4, 6, 7 và 8 bị cắt bớt.

  BẢNG TRUNCATE PartitionTable1
VỚI (CÁC PHẦN (2, 4, 6 ĐẾN 8));
ĐI
 

Xem thêm

XÓA (Giao dịch-SQL)
DROP TABLE (Transact-SQL)
IDENTITY (Thuộc tính) (Giao dịch-SQL)


Xem thêm những thông tin liên quan đến chủ đề cắt ngắn bảng trong sql

How to create Table,Insert,Update,Delete in SQL Server very easy steps

  • Tác giả: Dawa CIT
  • Ngày đăng: 2016-04-27
  • Đánh giá: 4 ⭐ ( 5409 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: A Chanel Where you can learn about Computer Information and Technology Like Asp.Net C,Asp.Net MVC,SQL Server,Bootstrap,Oracle and more Website design.
    —–Follow me on social media—–
    Like | Comment | Share | Subscribe
    👉Subscribe: https://bit.ly/370Pv85
    👉Subscribe My 2nd Chanel: https://bit.ly/3lZ16L7
    👉Website : http://www.dawacit.com
    👉Facebook : https://www.facebook.com/dawacit05
    👉Twitter : https://twitter.com/dawacit
    👉Instagram : https://www.instagram.com/dawacit
    =====watch other video =====
    SQl Tutorial 1 | What is Database,DBMS,RDBMS,SQL
    https://www.youtube.com/watch?v=V2Exczh3Row

    Insert data in Gridview | Asp.Net C
    https://www.youtube.com/watch?v=9tlDxZIDwFY

    Create website with stunning design part1 | HTML & CSS
    https://www.youtube.com/watch?v=vUljPad8Dq4

    How to create login and logout in Asp.Net MVC
    https://www.youtube.com/watch?v=7E8IK_eAsWE

    SQL Tutorial 3 | Create database,table,insert,update and delete in simple way
    https://www.youtube.com/watch?v=Wh7rPUTi0Ko

    How to create navigation bar using HTML and CSS and use website
    https://www.youtube.com/watch?v=JX3nmK3cnBQ

    Bootstrap tutorial 6 | responsive web design’s page layout
    https://www.youtube.com/watch?v=cHiWzrDaJOQ

    Forgot Password part 1 | How to send password to registered Email Id in ASP.Net C
    https://www.youtube.com/watch?v=OqfB3OAJ8NE

    SQLServer DawaCIT CreateTable UpdateTable DeleteTable
    SQL Server,
    Database,
    DBMS,
    SQL Tutorial,
    Databse Managment System,
    SQL Tutorial for beginners,
    Learn SQL Query,
    Computer,
    Computer course,
    SQL Query,
    DawaCIT,
    SQL,
    Developer,
    Coding,
    How to create a table in SQL.
    learn sql
    SQL Tutorial, for beginners
    edureka sql
    learn sql online
    sql course
    sql for beginners
    database sql
    sql commands
    sql syntax
    microsoft sql
    sql examples
    database sql queries
    sql online
    advanced sql
    sql db
    sql queries
    in sql server
    database management software
    database systems
    a database management system
    database software
    backup database
    database structure
    database db
    database management
    database design
    create table
    sql create table
    tables in sql
    creating tables
    create sql

Cắt ngắn (SQL)

  • Tác giả: wivi.wiki
  • Đánh giá: 3 ⭐ ( 7433 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong SQL , TRUNCATE TABLEcâu lệnh là một hoạt động Ngôn ngữ Định nghĩa Dữ liệu (DDL) đánh dấu các phạm vi của bảng để phân bổ (trống để sử dụng lại). Kết quả của thao tác này nhanh chóng xóa tất cả dữ liệu khỏi bảng , thường là bỏ qua một số cơ chế thực thi tính toàn vẹn. Nó chính thức được giới thiệu trong tiêu chuẩn SQL: 2008 .

Lệnh TRUNCATE TABLE trong SQL

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 1975 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lệnh TRUNCATE TABLE trong SQL được sử dụng để xóa hoàn toàn dữ liệu từ một bảng hiện có. Bạn cũng có thể sử dụng lệnh DROP TABLE để xóa toàn bộ bảng nhưng

Bảng cắt ngắn làm được gì trong SQL?

  • Tác giả: presbyteryofstockton.org
  • Đánh giá: 4 ⭐ ( 6069 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong SQL, câu lệnh TRUNCATE TABLE là một phép toán Ngôn ngữ Định nghĩa Dữ liệu (DDL) đánh dấu các phạm vi của bảng để phân bổ (trống để sử dụng lại). Kết quả của thao tác này nhanh chóng xóa tất cả dữ liệu khỏi bảng, thường là bỏ qua một số cơ chế thực thi tính toàn vẹn.

SQL Tạo bảng từ R – Dữ liệu chuỗi, cắt ngắn bên phải

  • Tác giả: isolution.pro
  • Đánh giá: 5 ⭐ ( 5310 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

KB4024622-khắc phục sự cố: không thể cắt xén một phân vùng của bảng phân vùng nếu nó chứa chỉ mục mở rộng hoặc XML trong SQL Server 2016 hoặc 2017

  • Tác giả: support.microsoft.com
  • Đánh giá: 5 ⭐ ( 8186 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khắc phục sự cố trong đó phân vùng của bảng phân vùng không thể bị cắt cụt nếu nó chứa chỉ mục mở rộng hoặc XML trong SQL Server 2016 hoặc 2017.

Cắt ngắn bảng trong SQL

  • Tác giả: vi.tutorialcup.com
  • Đánh giá: 3 ⭐ ( 9040 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cắt bớt bảng – Cắt bớt bảng sẽ không loại bỏ cấu trúc của bảng khỏi cơ sở dữ liệu, nhưng nó sẽ chỉ xóa dữ liệu được lưu trữ trong bảng.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách căn chỉnh mọi thứ trong CSS - Tạp chí Smashing - sắp xếp các mục trong css

By ads_php