TRUNCATE TABLE
刪除表中的所有行,而不記錄單個(gè)行刪除操作。
語法
參數(shù)
name
是要截?cái)嗟谋淼拿Q或要?jiǎng)h除其全部行的表的名稱。
注釋
TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。
DELETE 語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁的釋放。
TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用 DELETE。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)使用 DROP TABLE 語句。
對(duì)于由 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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
您可能感興趣的文章:- Oracle給用戶授權(quán)truncatetable的實(shí)現(xiàn)方案
- delete from 表名與truncate table 表名區(qū)別
- SQL中Truncate的用法
- golang實(shí)戰(zhàn)之truncate日志文件詳解
- tf.truncated_normal與tf.random_normal的詳細(xì)用法
- smarty中改進(jìn)truncate使其支持中文的方法
- SQL Server中TRUNCATE事務(wù)回滾操作方法
- 實(shí)例理解SQL中truncate和delete的區(qū)別
- 詳解SQL中drop、delete和truncate的異同
- Mysql開啟慢SQL并分析原因