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。
翻译
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。