SQL中的Delete语句从表中删除一条或多条记录,同时可以给Delete语句提供Where子句,SQL中的 Select语句中可以使用的任何条件都可以在DELECT的WHERE子句中使用。Delete语句的语法格式是:
DELETE [FROM] {table_name|view_name} [WHERE condition]。
如果不给Delete语句指定Where子句,表中的所有记录都将被删除。一般在执行Delete语句时,一定要仔细斟酌Where子句。如果确实需要删除表中的所有记录,应该使用Truncate Table语句。
为什么要用TRUNCATE TABLE 语句代替DELETE语句?当你使用TRUNCATE TABLE语句时,记录的删除是不作记录的。也就是说,这意味着TRUNCATE TABLE 要比DELETE快得多。
MSDN解释:删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。若要删除表定义及其数据,请使用 DROP TABLE 语句。如果表包含标识列,该列的计数器重置为该列定义的种子值。如果未定义种子,则使用默认值 1。若要保留标识计数器,请使用 DELETE。TRUNCATE TABLE 不能激活触发器,因为该操作不记录各个行删除。
SQL中的Truncate Table,布布扣,bubuko.com
原文地址:http://helicon.blog.51cto.com/3926609/1410954