删除数据

T-SQL 提供了两个从表中删除数据行的语句:DELETE 和 TRUNCATE 。

1.DELETE 语句

DELETE 语句是标准的SQL 语句,它用于根据指定的谓词从表中删除数据。这个标准的语句只有两个子句:用于指定目标表名的FROM子句和用于指定谓词条件的WHERE 子句。只有能让谓词条件计算结果为TRUE的行才会被删除。

注意:DELETE 语句采用的是完整模式的日志处理,当删除大量数据时,可能会花费大量时间。

2.TRUNCATE 语句

TRUNCATE 语句不是标准的SQL 语句,它用于删除表中的所有行。与DELETE 语句不同,TRUNCATE 不需要过滤条件。

TRUNCATE TABLE dbo.T1

和DELETE 语句相比,TRUNCATE 具有的优点是:TRUNCATE 以最小模式记录日志,而DELETE 则以完整模式记录日志,二者在性能方面有巨大差异。例如,对于一个包含数百万行记录的表,要删除表中的所有行,如果用TRUNCATE 语句,操作在几秒钟内就能完成;如果用DELETE 语句,操作可能要花费几分钟,甚至几个小时。

当表中用标识列时,TRUNCATE 和DELETE 在功能上也有所不同。TRUNCATE 会把标识值重置为最初的种子(seed),而DELETE 则不会。

posted @ 2014-05-27 00:12  守护之翼  阅读(200)  评论(0编辑  收藏  举报