T-SQL提供了两个从表中删除数据行的语句:DELETE和TRUNCATE。
DELETE语句采用的是完整模式的日志处理,当删除大量数据时,可能会花费大量时间。
TRUNCATE具有的优点是:TRUNCATE以最小模式记录日志,而DELETE则以完整模式记录日志,二者在性能方面有巨大差异。
当表中有标识列时,TRUNCATE会把标识值重置为最初的种子(seed),而DELETE则不会。
当目标表是由外键约束引用的表时,SQL Server将不允许对这样的表使用TRUNCATE语句,即使引用表(referencing table)为空或外键都被禁止也是如此。这是要使用TRUNCATE语句,唯一的办法就是删除正在引用目标表的所有外键。