在SQL中截断问题

时间:2018-03-21 11:01:01

标签: sql-server-2008

如何在SQL中使用Truncate而不是使用WHERE条件删除行? 截断只用于删除表或行?如果可以通过截断删除行,请告诉我任何人

3 个答案:

答案 0 :(得分:2)

你不能。只有DELETE条款可以包含WHERE条件,TRUNCATE会删除所有行。

来自MSDN

  

从表或表的指定分区中删除所有行,   没有记录单个行删除。 TRUNCATE TABLE是   类似于没有WHERE子句的DELETE语句;然而,   TRUNCATE TABLE更快,使用更少的系统和事务日志   资源。

答案 1 :(得分:1)

如果该行是表中唯一的行,则只能删除带有truncate的单行。

答案 2 :(得分:1)

Truncatedelete不同 您不能使用truncate删除特定行 实际上,语句是truncate table - 你不能截断除完整表之外的任何内容。

Truncate将从表中删除所有行,并且仅在外键未引用该表时才允许,不用作索引视图的基础,并且不由事务复制或合并复制发布。

此外,truncate table无法在交易中执行。

Truncate table还将重置表格的标识列(如果存在)。