資料異動操作直接影響資料庫一致性與效能。本文深入比較 DELETE 與 TRUNCATE 的差異,並展示 UPDATE 結合 REPLACE 的進階更新技巧,協助開發人員選擇最適合的資料維護策略。
DELETE FROM 表名 WHERE id = 'xx';
TRUNCATE TABLE 表名;
| 特性 | DELETE | TRUNCATE |
|---|---|---|
| 可加 WHERE 條件 | 是 | 否 |
| 觸發器 | 觸發 | 不觸發 |
| 日誌記錄量 | 逐列記錄 | 極少 (頁面層級) |
| IDENTITY 種子 | 保留現值 | 重設初始值 |
| 執行速度 | 較慢 | 極快 |
| 權限需求 | DELETE | ALTER TABLE |
UPDATE 表名
SET [欄位名] = '新值'
WHERE [條件欄位] = '條件值';
需求:將 19 歲以上會員名稱中的「星」字替換為「★」。
UPDATE 表名
SET name = REPLACE(name, '星', '★')
WHERE age > 19;
TRUNCATE 或分批 DELETE 避免日誌暴增。UPDATE 影響大量列時,建議分批處理並監控交易日誌成長。BEGIN TRAN) 確保可回滾。OUTPUT 子句可記錄異動前後的資料值,利於稽核追蹤。理解 DELETE/TRUNCATE 的底層機制差異,能在資料維護作業中兼顧效能與資料完整性。