TRUNCATE 命令用法

2021-05-28 04:36:43 字數 1237 閱讀 7665

刪除一表結構,報錯,可能是鎖表原因.用truncate指令後done!

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

語法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固定資料庫角色成員且不可轉讓。

1、truncate在各種表上無論是大的還是小的都非常快。如果有rollback命令delete將被撤銷,而truncate則不會被撤銷。

2、truncate是乙個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對truncate使用rollback命令。

3、truncate將重新設定高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過truncate操作後的錶比delete操作後的表要快得多。

4、truncate不能觸發任何delete觸發器。

5、不能授予任何人清空他人的表的許可權。

6、當表被清空後表和表的索引講重新設定成初始大小,而delete則不能。

7、不能清空父表。

truncate 函式用法示例

oracle trunc 函式的用法 日期 select trunc sysdate from dual 2015 03 23 今天的日期為2015 03 23 select trunc sysdate,mm from dual 2015 03 01 返回當月第一天.select trunc sys...

SQL中Truncate的用法

當你不再需要該錶時,用 drop 當你仍要保留該錶,但要刪除所有記錄時,用 truncate 當你要刪除部分記錄時 always with a where clause 用 delete.truncate是乙個能夠快速清空資料表內所有資料的sql語法。並且能針對具有自動遞增值的字段,做計數重置歸零重...

SQL中Truncate的用法

當你不再需要該錶時,用 drop 當你仍要保留該錶,但要刪除所有記錄時,用 truncate 當你要刪除部分記錄時 always with a where clause 用 delete.truncate是乙個能夠快速清空資料表內所有資料的sql語法。並且能針對具有自動遞增值的字段,做計數重置歸零重...