2012-04-11

SQL 刪除資料表內的所有紀錄 Truncate / Delete


使用Truncate Table 會移除資料表中的所有資料列,但會保留資料表結構及其欄位、條件約束、索引等。

如果該Table包含識別欄位,這個識別編號會重設為原本定義的初始值。如果未定義任何初始值,就會使用預設值 1。

Trance Table 與Delete 比較的優點為:

1.使用的交易記錄空間較少:Truncate Table會取消配置用來儲存資料表資料的資料頁,以移除資料,所以交易記錄只會記錄頁面的取消配置。

2.通常會使用較少鎖定:Delete會鎖定每一筆資料,以便執行刪除,但Truncate Table只鎖定資料表和頁面,不會鎖定每個資料列。

3.速度較快:綜合以上兩點,Truncate Table會比Delete快

語法範例:

TRUNCATE TABLE MyTestTable

DELETE FROM MyTestTable
5 章老師的電腦小講堂: SQL 刪除資料表內的所有紀錄 Truncate / Delete 使用Truncate Table 會移除資料表中的所有資料列,但會保留資料表結構及其欄位、條件約束、索引等。 如果該Table包含識別欄位,這個識別編號會重設為原本定義的初始值。如果未定義任何初始值,就會使用預設值 1。 Trance Table 與Delete 比較的...
小講堂經過多次搬移,舊文章連結及內容較難整理~
大家可以新文章為主~
每篇文章後有代碼,任何文章問題可至FB小講堂用代碼提問唷~