SQL Server中DELETE和TRUNCATE的区别
DELETE和TRUNCATE语句之间的区别是求职面试中最常见的问题之一。这两条语句都可以从表中删除数据。然而,也有不同之处。 本文将重点讨论这些差异,并通过实例加以说明。 TRUNCATE DELETE 从表中删除所有记录。我们不能使用WHERE删除特定的记录 删除所有记录,并可以使用WHERE删除特定记录。 不触发DELETE触发器。 触发DELETE触发器 重置标识列 不重置标识列 由于日志很少,所以速度更快。 由于执行了表扫描,以计算要删除的行数,并逐个删除行,所以会更慢。更改被记录在事务日志中。 使用行级锁 使用表级锁 需要ALTER TABLE权限 需要表的DELETE权限 出于演示的目的,我创建了一个名为studentDB的表。除此之外,又创建了两个表,tblSchool和tblStudent,并在这两个表中插入了一些记录。 下面的语句创建了tblStudent表: CREATE TABLE [dbo].[tblStudent]( [ID] [int] IDENTITY(1,1) NOT NULL, [student_name] [varchar](250) NOT N...