使用delete語句刪除數據的一般語法格式:
delete [from]
{table_name、view_name}
[where]
將XS表中的所有行數據刪除
delete XS
執行完後,發現XS表中的數據都刪除了,但是表的結構什麼都還在。
truncate
truncate table語句將刪除指定表中所有數據,因此也稱其為清除表數據語句,一般格式如下
truncate table name
由於truncate語句將刪除表中的所有數據,且無法恢復,因此使用時必須十分小心。
使用truncate table刪除了指定表中的所有行,但表的結構及其列,約束,索引等保持不變,而新行標識所用的計數值重置為該列的初始值。如果想保留標識計數值,則要使用DELETE語句。
TRUNCATE TABLE執行速度比DELETE塊,且使用的系統和事務日志資源少。DELETE語句每次刪除一行,並在事務日志中為所刪除的每行記錄一項。而TRUNCATE TABLE通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日志中記錄頁的釋放。
對於有外鍵約束引用的表,不能使用TRUNCATE TABLE刪除數據,而應該使用布袋WHERE子句的DELETE語句。另外TRUNCATE TABLE也不能用於參與了索引視圖的表。
轉自於博客園,如有冒犯請及時通知,本人會在第一時間刪除。