TRUNCATE TABLE 在sql server数据库中快速删除记录,清空表

转载 2013年12月03日 14:49:05

在sql server数据库中快速删除记录,清空表

TRUNCATE TABLE TableName


若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。

与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点:

  • 所用的事务日志空间较少。

    DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。

  • 使用的锁通常较少。

    当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。

  • 如无例外,在表中不会留有任何页。

    执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) 表锁,才能释放堆中的空表。如果执行删除操作时没有使用表锁,表(堆)中将包含许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后台清除进程迅速释放。

与 DELETE 语句相同,使用 TRUNCATE TABLE 清空的表的定义与其索引和其他关联对象一起保留在数据库中。

一次性清空某个数据库中所有表数据的SQL

在我们项目开发过程中,经常遇到需要在开发数据库基础上清理一个空库, 但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了, 因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表, 这...
  • u011507599
  • u011507599
  • 2016年02月29日 10:59
  • 5244

SQL Server百万级大数据量删除

删除一个表中的部分数据,数据量百万级。一般delete from 表 delete from ysh where date...
  • xia_xing
  • xia_xing
  • 2016年06月21日 10:48
  • 2335

TRUNCATE TABLE 在sql server数据库中快速删除记录,清空表

在sql server数据库中快速删除记录,清空表 若要删除表中的所有行,则 TRUNCATE TABLE 语句是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句...
  • zh89233
  • zh89233
  • 2013年12月03日 14:49
  • 1390

sql server truncate用法--清空表中所有数据

TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作。 语法 TRUNCATE TABLE name TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DEL...
  • cassiel1227
  • cassiel1227
  • 2016年08月19日 11:28
  • 580

Sql Server中清空所有数据表中的记录

 这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程。 Sql Server中...
  • u013597888
  • u013597888
  • 2015年08月20日 13:26
  • 3491

SQL Serverl删除数据库中所有表与数据语句

如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍。 使用sql删除数据库中所有...
  • ycl295644
  • ycl295644
  • 2015年06月18日 14:59
  • 5708

如何找出 SQL Server 2008 资料库里是否建立了多余的索引

講到 SQL Server 2008 效能調校,這可是一門大大的學問,但是若能掌握一些基本的 SQL Server 資料庫運作原理,要能成為 SQL Server 效能調校的專家其實並不困難。我們都知...
  • liyb5619
  • liyb5619
  • 2013年05月02日 10:35
  • 458

SQLSERVER清空表中所有数据TRUNCATE TABLE

TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作。 语法TRUNCATE TABLE nameTRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相...
  • aaroncheng
  • aaroncheng
  • 2008年08月23日 21:03
  • 19392

oracle清空表sql语句 以及Truncate与delete区别

oracle清空表sql语句 以及Truncate与delete区别
  • qq_19640525
  • qq_19640525
  • 2016年06月13日 11:17
  • 5255

SQLServer查看一个库里所有表的数据量

SELECT a.name TableName,b.rows TotalCount,D.Description AS [Description] FROM sysobjects a IN...
  • CsethCRM
  • CsethCRM
  • 2017年02月04日 09:44
  • 365
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TRUNCATE TABLE 在sql server数据库中快速删除记录,清空表
举报原因:
原因补充:

(最多只允许输入30个字)