TRUNCATE 疾速刪除表中的一切數據。本站提示廣大學習愛好者:(TRUNCATE 疾速刪除表中的一切數據)文章只能為提供參考,不一定能成為您想要的結果。以下是TRUNCATE 疾速刪除表中的一切數據正文
備注
與 DELETE 語句比擬,TRUNCATE TABLE 具有以下長處:
所用的事務日記空間較少。
DELETE 語句每次刪除一行,並在事務日記中為所刪除的每行記載一個條目。TRUNCATE TABLE 經由過程釋放用於存儲表數據的數據頁來刪除數據,而且在事務日記中只記載頁釋放。
應用的鎖平日較少。
當應用行鎖履行 DELETE 語句時,將鎖定表中各行以便刪除。TRUNCATE TABLE 一直鎖定表和頁,而不是鎖定各行。
表中將毫無破例地不留下任何頁。
履行 DELETE 語句後,表仍會包括空頁。例如,必需至多應用一個排他 (LCK_M_X) 表鎖,能力釋放堆中的空表。假如履行刪除操作時沒有應用表鎖,表(堆)中將包括很多空頁。關於索引,刪除操作會留下一些空頁,雖然這些頁會經由過程後台消除過程敏捷釋放。
TRUNCATE TABLE 刪除表中的一切行,但表構造及其列、束縛、索引等堅持不變。若要刪除表界說及其數據,請應用 DROP TABLE 語句。
假如表包括標識列,該列的計數重視置為該列界說的種子值。假如不決義種子,則應用默許值 1。若要保存標識計數器,請應用 DELETE。
限制
不克不及對以下表應用 TRUNCATE TABLE:
由 FOREIGN KEY 束縛援用的表。
介入索引視圖的表。
經由過程應用事務復制或歸並復制宣布的表。
關於具有以上一個或多個特點的表,請應用 DELETE 語句。
TRUNCATE TABLE 不克不及激活觸發器,由於該操作不記載各個行刪除。有關具體信息,請參閱 CREATE TRIGGER (Transact-SQL)。