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条件删除某些指定记录。

  • 相关阅读:
    HDU
    01字典树模板
    扩展欧几里得和乘法逆元
    HDOJ-1156 Brownie Points II 线段树/树状数组(模板)
    CF-825E Minimal Labels 反向拓扑排序
    CF-831D Office Keys 思维题
    RMQ 解决区间查询问题
    hdu 5073 有坑+方差贪心
    hdu 5074 相邻数和最大dp
    hdu 5078 水题
  • 原文地址:https://www.cnblogs.com/zi-xing/p/4357613.html
Copyright © 2011-2022 走看看