DELETE语句例子 你还可以使用DELETE语句来删除表中的所有数据,例子如下所示: DELETE FROM dbo.Employees; 再一次地,只有关键字(DELETE FROM)和表名称需要特别声明。如果我重新填充表然后运行SELECT语句,我得到的结果将会稍有不同: EmpID EmpName EmpJobTitle 4 Eric Brown Production Technician – WC40 5 Jo Brown Production Supervisor – WC60 6 Kevin Brown Marketing As……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
DELETE语句例子
你还可以使用DELETE语句来删除表中的所有数据,例子如下所示:
DELETE FROM dbo.Employees;
再一次地,只有关键字(DELETE FROM)和表名称需要特别声明。如果我重新填充表然后运行SELECT语句,我得到的结果将会稍有不同:
EmpID EmpName EmpJobTitle
4 Eric Brown Production Technician - WC40
5 Jo Brown Production Supervisor - WC60
6 Kevin Brown Marketing Assistant
正如你所见,IDENTITY列值目前是以4开始的,而不是1。即使DELETE语句是用来删除所有的数据,IDENTITY值仍然根据最后所使用的值在增加。
除了IDENTITY值之外,我们还需要注意DELETE和TRUNCATE TABLE语句的区别。当从表中删除所有的数据时,TRUNCATE TABLE语句要比DELETE语句高效:
- TRUNCATE TABLE语句使用的锁比DELETE语句更少。当使用一个TRUNCATE TABLE语句的时候,SQL Server只申请表和页面锁,而使用DELETE语句时,SQL Server还要申请行级锁。
- TRUNCATE TABLE比DELETE语句使用更少的日志空间。当使用一个TRUNCATE TABLE语句的时候,SQL Server将只分配事务日志中的数据页面和记录,而使用DELETE语句时,SQL Server将登记每一个被删除的行到事务日志中。
- 一个TRUNCATE TABLE语句不会在表中留下任何页面,而DELETE语句有可能会留下空白的页面。
除去这些不同,TRUNCATE TABLE和DELETE语句在移除数据之后,都不会改变表结构。索引、约束以及列都不会受到影响。
尽管在效率方面,TRUNCATE TABLE语句比DELETE语句要更强一些,但是有些约束限制了TRUNCATE TABLE的使用。例如,在以下情况下,你不能够使用TRUNCATE TABLE语句:
- 一个索引视图在其定义中指明了表
- 使用事务或合并复制来创建表
- 表引用的是一个外键约束
- 表的IDENTITY值必须维护并不断递增
- 只有指定的行被删除,而不是整个数据集
最后一项需要特别注意一下,它表示TRUNCATE TABLE语句不可以用来删除表中的制定行。在这种情况下,使用DELETE语句配合WHERE子句。在下面的例子中,我使用了一个DELETE语句来删除EmpID值为6的行:
DELETE FROM dbo.Employees
WHERE EmpID = 6;
正如你所见,我使用DELETE语句同WHERE子句配合来指定被删除行的值。如果在此时针对Employees 表运行SELECT语句,将会得到以下结果:
EmpID EmpName EmpJobTitle
4 Eric Brown Production Technician - WC40
5 Jo Brown Production Supervisor - WC60
你还可以使用更加复杂的DELETE语句。只要记住,在删除全部行数据的时候,使用TRUNCATE TABLE,而其他情况下使用DELETE。
翻译
相关推荐
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
横向扩展SQL Server应用程序:提高工作负载的选项
SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。
-
五大技巧构建首个SQL Server容器
容器的世界庞大而复杂,使用者可能会感到困扰,这里我们将列出一些示例,以便引导您顺利完成SQL Server容器的创建和管理。