一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - drop,truncate與delete的區別

drop,truncate與delete的區別

2019-11-19 15:27mssql教程網 Sql Server

這里說的delete是指不帶where子句的delete語句

注意:這里說的delete是指不帶where子句的delete語句 
相同點 
truncate和不帶where子句的delete, 以及drop都會刪除表內的數據 

不同點: 
1. truncate和 delete只刪除數據不刪除表的結構(定義) 
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴于該表的存儲過程/函數將保留,但是變為invalid狀態. 
2.delete語句是dml,這個操作會放到rollback segement中,事務提交之后才生效;如果有相應的trigger,執行的時候將被觸發. 
truncate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger. 
3.delete語句不影響表所占用的extent, 高水線(high watermark)保持原位置不動 
顯然drop語句將表所占用的空間全部釋放 
truncate 語句缺省情況下將空間釋放到 minextents個 extent,除非使用reuse storage; truncate會將高水線復位(回到最開始). 
4.速度,一般來說: drop>; truncate >; delete 
5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及 
使用上,想刪除部分數據行用delete,注意帶上where子句. 回滾段要足夠大. 
想刪除表,當然用drop 
想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還是用delete. 
如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據 

通俗的講: 

在實際應用中,三者的區別是明確的。 
當你不再需要該表時, 用 drop; 
當你仍要保留該表,但要刪除所有記錄時, 用 truncate; 
當你要刪除部分記錄時(always with a WHERE clause), 用 delete.

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 草草草视频在线观看 | 美女福利视频一区二区 | 香港三级系列在线播放 | 好湿好紧太硬了我太爽了网站 | 亚洲九九九 | 午夜福利08550 | 亚洲AV国产福利精品在现观看 | 亚洲精品视 | 99热精品成人免费观看 | 美女尿口照片 | 美女天天色 | 日韩精品成人在线 | 国产精品久久久久久岛国 | 韩国情事伦理片观看地址 | 国产精品aⅴ | 精品无码乱码AV | 国产 国语对白 露脸正在播放 | 毛片影院 | 国产愉拍精品视频手机 | 日本韩国在线 | 国产欧美一区二区精品性色99 | 精品一区二区免费视频蜜桃网 | 日本大尺度激情做爰叫床 | 网站在线播放 | 美女福利视频午夜在线 | 欧美亚洲国产一区二区三区 | 成人免费视频在 | 娇小XXXXX第一次出血 | 日韩欧美亚洲每日更新网 | 黑人异族日本人hd | 日本特级大片 | 97精品国产自在现线免费 | 国产123区在线视频观看 | 99re精品在线 | 婷婷精品进入 | 奶茶视频官网免费 | 天天摸天天爽视频69视频 | 性奶乳妇| 大桥未久aⅴ一区二区 | 99热在线这里只有精品 | 免费国产影视观看网站入口 |