刪除表中的所有行

2021-04-28 20:33:34 字數 1481 閱讀 5415

刪除表中的所有行,而不記錄單個行刪除操作。truncate table 在功能上與沒有 where 子句的 delete 語句相同;但是,truncate table 速度更快,使用的系統資源和事務日誌資源更少。

truncate table 

[ ]

table_name

[ ; ]

與 delete 語句相比,truncate table 具有以下優點:

truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。若要刪除表定義及其資料,請使用 drop table 語句。

如果表包含標識列,該列的計數器重置為該列定義的種子值。如果未定義種子,則使用預設值 1。若要保留標識計數器,請使用 delete。

不能對以下表使用 truncate table:

對於具有以上乙個或多個特徵的表,請使用 delete 語句。

truncate table 不能啟用觸發器,因為該操作不記錄各個行刪除。有關詳細資訊,請參閱 create trigger (transact-sql)。

microsoft sql server 2005 能夠刪除或截斷有 128 個以上的區的表,而不必對需要刪除的所有區保持同時鎖定。有關詳細資訊,請參閱刪除並重新生成大型物件。

database_name

資料庫的名稱。

schema_name

表所屬架構的名稱。

table_name

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

所需的最低許可權是對 table_name 的 alter 許可權。truncate table 許可權預設授予表所有者、sysadmin 固定伺服器角色的成員、db_owner 和 db_ddladmin 固定資料庫角色的成員,並且不可轉移許可權。但是,可以在諸如儲存過程這樣的模組中加入 truncate table 語句,然後為使用 execute as 子句的模組授予適當的許可權。有關詳細資訊,請參閱使用 execute as 建立自定義許可權集。

以下示例刪除jobcandidate表中的所有資料。select 語句放在 truncate table 語句之前和之後以比較結果。

複製**

use adventureworks;

goselect count(*) as beforetruncatecount

from humanresources.jobcandidate;

gotruncate table humanresources.jobcandidate;

goselect count(*) as aftertruncatecount

from humanresources.jobcandidate;

go

參考delete (transact-sql)

drop table (transact-sql)

identity(屬性)(transact-sql)

vi 刪除行的所有操作

我這裡在編輯乙個很大的檔案,有幾萬行,都是檔名sheetid,中間有很多空行,我現在要做的事情就有要把這個檔案中的空行都刪除掉,這個本來想在ultraedit裡面完成的,結果弄了好半天都沒有搞定,時間緊急也沒法再去慢慢的try了,乾脆放到aix上面使用vi來做,也是在網上google 結果找到很多這...

使用 TRUNCATE TABLE 刪除所有行

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

使用 TRUNCATE TABLE 刪除所有行

truncate是sql中的乙個刪除資料表內容的語句,用法是 truncate table table name 下面是對truncate語句在mssqlserver2000中用法和原理的說明 truncate table 表名 速度快,而且效率高,因為 truncate table 在功能上與不帶...