刪除表和截斷表命令之間的區別


表刪除包括表的定義和關聯對象(規則、索引、約、觸發器、主鍵,等)。很明顯,一旦表被刪除,那么表中包含的所有的數據行都會被一同刪除。   

  truncate 命令則僅僅刪除了表中所有的數據行。表的結構和所有的索引仍然繼續存在,直到你輸入刪除表的命令(如上所述)。綁定到列上的規則、默認值、約束仍然繼續綁定,並且觸發器也仍然起作用。

  截斷表命令還會回收所有索引的分配頁。   

  截斷表的執行速度與不帶where子句的delete(刪除)命令相同,甚至比它還要快。delete(刪除) 一次刪除一行數據,並且將每一行被刪除的數據都作為一個事務記錄日志;而truncate (截斷)表則回收整個數據頁,只記錄很少的日志項。delete(刪除)和truncate(截斷)都會回收被數據占用的空間,以及相關的索引。只有表的擁有者可以截斷表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM