最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中Truncate的用法

 更新時間:2018年08月02日 10:52:58   作者:夢想家ROBOT  
Truncate是一個能夠快速清空資料表內(nèi)所有資料的SQL語法。這篇文章主要介紹了SQL中Truncate的用法,需要的朋友可以參考下

本文導讀:刪除表中的數(shù)據(jù)的方法有delete,truncate, 其中TRUNCATE TABLE用于刪除表中的所有行,而不記錄單個行刪除操作。TRUNCATE TABLE 與沒有 WHERE 子句的 DELETE 語句類似;但是,TRUNCATE TABLE 速度更快,使用的系統(tǒng)資源和事務日志資源更少。下面介紹SQL中Truncate的用法

當你不再需要該表時, 用 drop;當你仍要保留該表,但要刪除所有記錄時, 用 truncate;當你要刪除部分記錄時(always with a WHERE clause), 用 delete.

Truncate是一個能夠快速清空資料表內(nèi)所有資料的SQL語法。并且能針對具有自動遞增值的字段,做計數(shù)重置歸零重新計算的作用。

一、Truncate語法

[ { database_name.[ schema_name ]. | schema_name . } ]
  table_name
[ ; ]

參數(shù)

database_name

數(shù)據(jù)庫的名稱。

schema_name

表所屬架構(gòu)的名稱。

table_name

要截斷的表的名稱,或要刪除其全部行的表的名稱。

二、Truncate使用注意事項

1、TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統(tǒng)和事務日志資源少。 

2、DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù),并且只在事務日志中記錄頁的釋放。

3、TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標識所用的計數(shù)值重置為該列的種子。如果想保留標識計數(shù)值,請改用 DELETE。如果要刪除表定義及其數(shù)據(jù),請使用 DROP TABLE 語句。 

4、對于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。

5、TRUNCATE TABLE 不能用于參與了索引視圖的表。 

6、對用TRUNCATE TABLE刪除數(shù)據(jù)的表上增加數(shù)據(jù)時,要使用UPDATE STATISTICS來維護索引信息。

7、如果有ROLLBACK語句,DELETE操作將被撤銷,但TRUNCATE不會撤銷。 

三、不能對以下表使用 TRUNCATE TABLE

1、由 FOREIGN KEY 約束引用的表。(您可以截斷具有引用自身的外鍵的表。)

2、參與索引視圖的表。

3、通過使用事務復制或合并復制發(fā)布的表。

4、對于具有以上一個或多個特征的表,請使用 DELETE 語句。

5、TRUNCATE TABLE 不能激活觸發(fā)器,因為該操作不記錄各個行刪除。

四、TRUNCATE、Drop、Delete區(qū)別

1.drop和delete只是刪除表的數(shù)據(jù)(定義),drop語句將刪除表的結(jié)構(gòu)、被依賴的約束(constrain)、觸發(fā)器 (trigger)、索引(index);依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。

2.delete語句是DML語言,這個操作會放在rollback segement中,事物提交后才生效;如果有相應的觸發(fā)器(trigger),執(zhí)行的時候?qū)⒈挥|發(fā)。truncate、drop是DDL語言,操作后即 生效,原數(shù)據(jù)不會放到rollback中,不能回滾,操作不會觸發(fā)trigger。

3.delete語句不影響表所占用的extent、高水線(high watermark)保持原位置不動。drop語句將表所占用的空間全部釋放。truncate語句缺省情況下將空間釋放到minextents的 extent,除非使用reuse storage。truncate會將高水線復位(回到最初)。

4.效率方面:drop > truncate > delete

5.安全性:小心使用drop與truncate,尤其是在 沒有備份的時候,想刪除部分數(shù)據(jù)可使用delete需要帶上where子句,回滾段要足夠大,想刪除表可以用drop,想保留表只是想刪除表的所有數(shù)據(jù)、 如果跟事物無關(guān)可以使用truncate,如果和事物有關(guān)、又或者想觸發(fā) trigger,還是用delete,如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導入、插入數(shù)據(jù)。

6.delete是DML語句,不會自動提交。drop/truncate都是DDL語句,執(zhí)行后會自動提交。

7、drop一般用于刪除整體性數(shù)據(jù) 如表,模式,索引,視圖,完整性限制等;delete用于刪除局部性數(shù)據(jù) 如表中的某一元組

8、DROP把表結(jié)構(gòu)都刪了;DELETE只是把數(shù)據(jù)清掉

9、當你不再需要該表時, 用 drop;當你仍要保留該表,但要刪除所有記錄時, 用 truncate;當你要刪除部分記錄時(always with a WHERE clause), 用 delete.

總結(jié)

以上所述是小編給大家介紹的SQL中Truncate的用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SQL Server中數(shù)據(jù)類型轉(zhuǎn)換的原理、使用方法、常見場景示例講解

    SQL Server中數(shù)據(jù)類型轉(zhuǎn)換的原理、使用方法、常見場景示例講解

    在SQLServer中,數(shù)據(jù)類型轉(zhuǎn)換包含隱式轉(zhuǎn)換和顯式轉(zhuǎn)換兩種方式,隱式轉(zhuǎn)換由系統(tǒng)自動完成,而顯式轉(zhuǎn)換需要使用CAST或CONVERT函數(shù),本文詳細講解了數(shù)據(jù)類型轉(zhuǎn)換的原理、使用方法和常見場景,并提供了具體示例,同時,介紹了錯誤處理函數(shù)TRY_CAST和TRY_CONVERT
    2024-09-09
  • SQLserver中cube:多維數(shù)據(jù)集實例詳解

    SQLserver中cube:多維數(shù)據(jù)集實例詳解

    這篇文章主要介紹了SQLserver中cube:多維數(shù)據(jù)集實例詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • SQL貨幣數(shù)字轉(zhuǎn)英文字符語句

    SQL貨幣數(shù)字轉(zhuǎn)英文字符語句

    SQL貨幣數(shù)字轉(zhuǎn)英文字符,需要的朋友可以參考下。
    2009-11-11
  • sql帶分隔符的截取字符串示例

    sql帶分隔符的截取字符串示例

    這篇文章主要介紹了sql帶分隔符的截取字符串示例,需要的朋友可以參考下
    2014-03-03
  • SQL Server 文件操作方法

    SQL Server 文件操作方法

    在master數(shù)據(jù)庫中,SQL Server提供系統(tǒng)擴展的存儲過程,其中有一些存儲過程的命名以xp_開頭,用于處理操作系統(tǒng)的文件。這篇文章主要介紹了SQL Server 文件操作方法,需要的朋友可以參考下
    2018-02-02
  • Sql Server觸發(fā)器的使用

    Sql Server觸發(fā)器的使用

    觸發(fā)器是一種特殊的存儲過程,不能被顯式調(diào)用,只能在對表進行insert、update、delete操作時被自動激活。所以觸發(fā)器可以用來實現(xiàn)對表進行復雜的完整性約束
    2012-12-12
  • 用戶"sa"登陸失敗 SQLServer 錯誤18456的解決方法

    用戶"sa"登陸失敗 SQLServer 錯誤18456的解決方法

    sqlserver下用sa登錄提示18456錯誤的解決方法。
    2009-11-11
  • SQL Server觸發(fā)器的使用解讀

    SQL Server觸發(fā)器的使用解讀

    本文詳細介紹了SQL Server中的觸發(fā)器,包括觸發(fā)器的定義、類型(DML、DDL和登錄觸發(fā)器)、工作原理以及使用觸發(fā)器的優(yōu)勢和缺點,通過實際的DML觸發(fā)器示例,展示了觸發(fā)器在數(shù)據(jù)操作中的應用,最后,提出了編寫觸發(fā)器時應注意的建議,以提高觸發(fā)器的性能和可靠性
    2024-12-12
  • mssql存儲過程表名和字段名為變量的實現(xiàn)方法

    mssql存儲過程表名和字段名為變量的實現(xiàn)方法

    mssql存儲過程表名和字段名為變量的實現(xiàn)方法,需要的朋友可以參考下。
    2011-11-11
  • MyBatis實踐之動態(tài)SQL及關(guān)聯(lián)查詢

    MyBatis實踐之動態(tài)SQL及關(guān)聯(lián)查詢

    MyBatis,大家都知道,半自動的ORM框架,原來叫ibatis,后來好像是10年apache軟件基金組織把它托管給了goole code,就重新命名了MyBatis,功能相對以前更強大了。本文給大家介紹MyBatis實踐之動態(tài)SQL及關(guān)聯(lián)查詢,對mybatis動態(tài)sql相關(guān)知識感興趣的朋友一起學習吧
    2016-03-03

最新評論

大港区| 乡城县| 湘阴县| 霸州市| 昌图县| 疏勒县| 青海省| 建瓯市| 石楼县| 福州市| 宝山区| 安宁市| 台南县| 房山区| 天长市| 尤溪县| 久治县| 临城县| 吉安市| 兴山县| 根河市| 绥棱县| 阳曲县| 紫阳县| 蒙自县| 会昌县| 石柱| 会东县| 宿迁市| 南通市| 泾川县| 鹿邑县| 龙里县| 牟定县| 永泰县| 华安县| 惠来县| 象州县| 桐梓县| 昌乐县| 桐庐县|