Truncate Table

Truncate Table

Truncate是一個能夠快速清空資料表內所有資料的SQL語法。並且能針對具有自動遞增值的欄位,做計數重置歸零重新計算的作用。

語法

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 不能用於參與了索引視圖的表。

對用TRUNCATE TABLE刪除數據的表上增加數據時,要使用UPDATE STATISTICS來維護索引信息。

如果有ROLLBACK語句,DELETE操作將被撤銷,但TRUNCATE不會撤銷。

TRUNCATE TABLE name [DROP/REUSE STORAGE]

DROP STORAGE:顯式指明釋放數據表和索引的空間

REUSE STORAGE:顯式指明不釋放數據表和索引的空間

truncate命令是會把自增的欄位還原為從1開始的,或者你試試把table_a清空,然後取消自增,保存,再加回自增,這也是自增段還原為1 的方法。

還有兩種方法是可以把表id還原為1 的

1.delete from 你的表名

dbcc checkident(你的表名,reseed,0)

2.如果你要保存你的數據,介紹你第三種方法,by QINYI

用phpmyadmin導出資料庫,你在裡面會有發現喔

編輯sql檔案,將其中的自增下一個id號改好,再導入。

許可權

TRUNCATE TABLE 許可權默認授予表所有者、sysadmin 固定伺服器角色成員、db_owner 和 db_ddladmin固定資料庫角色成員且不可轉讓。

套用舉例

下例刪除 authors 表中的所有數據。

TRUNCATE TABLE authors

相關詞條

相關搜尋

熱門詞條

聯絡我們