1. 程式人生 > >刪除表和截斷表命令之間的區別?  

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

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

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

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

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