TRUNCATE TABLE
從資料表中移除所有的資料列,且不對個別資料列的刪除做記錄。語法
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_owner 與 db_ddladmin 固定資料庫角色的成員,並且無法轉移。