zoukankan      html  css  js  c++  java
  • SqlServer-truncate && delete && drop 的区别

    有些人在删除表的所有记录的时候,喜欢这样来——不给DELETE 语句提供WHERE 子句,表中的所有记录都将被删除。但这种方法是不可取的,正确的应该使用

    TRUNCATE TABLE tb_name

    为什么要用TRUNCATE TABLE 语句代替DELETE语句?

    因为:虽然TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE  DELETE 速度快,且使用的系统和事务日志资源少。  

    DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。

    TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

    TRUNCATE,DELETE,DROP放在一起比较:

    TRUNCATE TABLE:删除内容、释放空间但不删除定义。

    DELETE TABLE:删除内容不删除定义,不释放空间。

    DROP TABLE:删除内容和定义,释放空间。

    truncate删除表比较快,但删除的数据不能恢复,只能删除表中的所有数据

    delete删除比truncate慢,删除的数据可以恢复,后面可以跟where条件删除某些指定记录。

  • 相关阅读:
    牛客练习赛9
    Good Bye 2017
    Wannafly挑战赛6
    TOJ1840: Jack Straws 判断两线段相交+并查集
    Codeforces Round #452 (Div. 2)
    TOJ4505: KOSARE
    Codeforces Round #451 (Div. 2)
    牛客练习赛8
    TOJ4168: Same Digits
    TOJ4483: Common Digit Pairs
  • 原文地址:https://www.cnblogs.com/zi-xing/p/4357613.html
Copyright © 2011-2022 走看看