濮阳杆衣贸易有限公司

主頁 > 知識庫 > sqlserver中drop、truncate和delete語句的用法

sqlserver中drop、truncate和delete語句的用法

熱門標(biāo)簽:怎么修改高德地圖標(biāo)注 合肥crm外呼系統(tǒng)加盟 城市地圖標(biāo)志怎么標(biāo)注 漯河電銷回撥外呼系統(tǒng) 硅基電話機器人官網(wǎng) 電話機器人怎么看余額 長沙外呼系統(tǒng)平臺 西安電話自動外呼系統(tǒng) 美國地圖標(biāo)注軟件下載

雖然小編不建議大家去用命令刪除數(shù)據(jù)庫表中的東西,但是這些刪除命令總有用的著的地方。

說到刪除表數(shù)據(jù)的關(guān)鍵字,大家記得最多的可能就是delete了

然而我們做數(shù)據(jù)庫開發(fā),讀取數(shù)據(jù)庫數(shù)據(jù).對另外的兩兄弟用得就比較少了

現(xiàn)在來介紹另外兩個兄弟,都是刪除表數(shù)據(jù)的,其實也是很容易理解的

老大------drop

出沒場合:drop table  tb --tb表示數(shù)據(jù)表的名字,下同

絕招:刪除內(nèi)容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數(shù)據(jù)是不可能的,除非新增一個表,

       例如:一個班就是一個表,學(xué)生就是表中的數(shù)據(jù),學(xué)生的職務(wù)就是定義

       drop table class,就是把整個班移除.學(xué)生和職務(wù)都消失

比如下面TestSchool數(shù)據(jù)庫中有兩張表[Classes]表和[Teacher]表

當(dāng)執(zhí)行下面代碼之后

Classes表就被清楚,一干二凈! 刪除得非常暴力,作為老大實至名歸

老二-----truncate

出沒場合:truncate table tb

絕招:刪除內(nèi)容、釋放空間但不刪除定義。與drop不同的是,他只是清空表數(shù)據(jù)而已,他比較溫柔.

同樣也是一個班,他只去除所有的學(xué)生.班還在,職務(wù)還在,如果有新增的學(xué)生可以進去,也可以分配上職務(wù)

刪除內(nèi)容很容易理解,不刪除定義也很容易理解,就是保留表的數(shù)據(jù)結(jié)構(gòu)

上圖就表現(xiàn)了:刪除內(nèi)容

執(zhí)行語句之后,發(fā)現(xiàn)數(shù)據(jù)表的結(jié)構(gòu)還在,也就是不刪除定義

至于釋放空間,看下下面兩幅圖.你們就會明白的

右圖:Id列標(biāo)識列,因之前delete過行數(shù)據(jù),所以會出現(xiàn)標(biāo)識列不連續(xù)(體現(xiàn)了delete刪除是不釋放空間的)

經(jīng)過truncate table Teacher 之后 再新增三條數(shù)據(jù)

右圖:同樣Id是標(biāo)識列,發(fā)現(xiàn)插入數(shù)據(jù)的時候,標(biāo)識列連續(xù)了(體現(xiàn)了truncate刪除是釋放空間)

注意:truncate 不能刪除行數(shù)據(jù),要刪就要把表清空

老三-----delete

出沒場合:delete table tb   --雖然也是刪除整個表的數(shù)據(jù),但是過程是痛苦的(系統(tǒng)一行一行地刪,效率較truncate低)

            或

            delete table tb where 條件

絕招:刪除內(nèi)容不刪除定義,不釋放空間。三兄弟之中最容易欺負的一個

然后關(guān)于delete的就不詳細說明了,大家都懂的

關(guān)于truncate的小小總結(jié):

truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。

但 truncate 比 delete速度快,且使用的系統(tǒng)和事務(wù)日志資源少。

delete 語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項。所以可以對delete操作進行roll back

1、truncate 在各種表上無論是大的還是小的都非??臁H绻蠷OLLBACK命令Delete將被撤銷,而 truncate 則不會被撤銷。 
2、truncate 是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對 truncate 使用ROLLBACK命令。 
3、truncate 將重新設(shè)置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經(jīng)過 truncate 操作后的表比Delete操作后的表要快得多。 
4、truncate 不能觸發(fā)任何Delete觸發(fā)器。 
5、當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,而delete則不能。 
6、不能清空父表

您可能感興趣的文章:
  • SqlServer2008誤操作數(shù)據(jù)(delete或者update)后恢復(fù)數(shù)據(jù)的方法
  • sqlserver中delete、update中使用表別名和oracle的區(qū)別
  • SQLServer 2008中SQL增強之三 Merge(在一條語句中使用Insert,Update,Delete)
  • SQL Server 添加Delete操作回滾日志方式

標(biāo)簽:濟源 玉溪 文山 商洛 吉林 撫順 瀘州 廣西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sqlserver中drop、truncate和delete語句的用法》,本文關(guān)鍵詞  sqlserver,中,drop,truncate,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sqlserver中drop、truncate和delete語句的用法》相關(guān)的同類信息!
  • 本頁收集關(guān)于sqlserver中drop、truncate和delete語句的用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    襄垣县| 岚皋县| 息烽县| 贵南县| 厦门市| 民权县| 甘孜县| 新丰县| 龙泉市| 浑源县| 上饶县| 东乌| 垦利县| 江都市| 朝阳区| 廉江市| 兴城市| 双桥区| 文水县| 中山市| 麦盖提县| 吴江市| 花垣县| 类乌齐县| 大同县| 宜阳县| 吴堡县| 谢通门县| 华阴市| 延边| 丘北县| 青龙| 拉萨市| 潼关县| 衡东县| 德兴市| 剑川县| 宿迁市| 焦作市| 松潘县| 红河县|