2012年4月10日 星期二

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

沒有留言:

張貼留言