TRUNCATE TABLE
刪除表中的所有行,而不記錄單個行刪除操作。
語法
參數(shù)
name
是要截斷的表的名稱或要刪除其全部行的表的名稱。
注釋
TRUNCATE TABLE
在功能上與不帶 WHERE
子句的 DELETE
語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE
比 DELETE
速度快,且使用的系統(tǒng)和事務(wù)日志資源少。
DELETE
語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項。TRUNCATE TABLE
通過釋放存儲表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁的釋放。
TRUNCATE TABLE
刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識所用的計數(shù)值重置為該列的種子。如果想保留標(biāo)識計數(shù)值,請改用 DELETE。如果要刪除表定義及其數(shù)據(jù),請使用 DROP TABLE
語句。
對于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應(yīng)使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。
TRUNCATE TABLE
不能用于參與了索引視圖的表。
示例
下例刪除 authors 表中的所有數(shù)據(jù)。
TRUNCATE TABLE authors
權(quán)限
TRUNCATE TABLE
權(quán)限默認(rèn)授予表所有者、sysadmin
固定服務(wù)器角色成員、db_owner
和 db_ddladmin
固定數(shù)據(jù)庫角色成員且不可轉(zhuǎn)讓。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- Oracle給用戶授權(quán)truncatetable的實現(xiàn)方案
- delete from 表名與truncate table 表名區(qū)別
- SQL中Truncate的用法
- golang實戰(zhàn)之truncate日志文件詳解
- tf.truncated_normal與tf.random_normal的詳細(xì)用法
- smarty中改進(jìn)truncate使其支持中文的方法
- SQL Server中TRUNCATE事務(wù)回滾操作方法
- 實例理解SQL中truncate和delete的區(qū)別
- 詳解SQL中drop、delete和truncate的異同
- Mysql開啟慢SQL并分析原因