TRUNCATE TABLE 清除表資料

2021-05-23 02:08:13 字數 900 閱讀 4417

刪除表中的所有行,而不記錄單個行刪除操作。

語法truncate table name

引數name

是要截斷的表的名稱或要刪除其全部行的表的名稱。

注釋truncate table 在功能上與不帶 where 子句的 delete 語句相同:二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。

delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate table 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放。

truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 delete。如果要刪除表定義及其資料,請使用 drop table 語句。

對於由 foreign key 約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。由於 truncate table 不記錄在日誌中,所以它不能啟用觸發器。

truncate table 不能用於參與了索引檢視的表。

示例下例刪除authors表中的所有資料。

truncate table authors
許可權

truncate table 許可權預設授予表所有者、sysadmin固定伺服器角色成員、db_ownerdb_ddladmin固定資料庫角色成員且不可轉讓。

請參見

delete

drop table

Truncate table 清除表內容

truncate table 刪除表中的所有行,而不記錄單個行刪除操作。truncate table 與沒有 where 子句的 delete 語句類似 但是,truncate table 速度更快,使用的系統資源和事務日誌資源更少。語法 table name 引數database name 資料庫...

Truncate table對x bh的影響

今天在做實驗的時候發現 truncate table後x bh不會再記錄對此table塊的訪問,具體實驗如下 sql create table t3 a number table created.sql select object id from dba objects where object n...

使用 TRUNCATE TABLE 刪除所有行

若要刪除表中的所有行,則 truncate table 語句是一種快速 無日誌記錄的方法。truncate table 與不含有 where 子句的 delete 語句在功能上相同。但是,truncate table 速度更快,並且使用更少的系統資源和事務日誌資源。與 delete 語句相比,tru...