delete,truncate ,drop区别

use [database_name]
go

delete from table_nameTest  where FCRTime<(Select CONVERT(varchar(100),DATEADD(DAY,-30,getdate()), 112))

CONVERT() 函数:
CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。(112代表yymmdd)
‘ GETDATE() 函数来获得当前的日期/时间:

‘DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。

truncate table table_name

truncate语句一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

********************************

当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,

DELETE操作不会减少表或索引所占用的空间。

drop语句将表所占用的空间全释放掉。

一般而言,drop > truncate > delete

TRUNCATE 只能对TABLE;         DELETE可以是table和view

TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)。

truncate、drop是DLL(data define language),操作立即生效,原数据不放到 rollback segment中,不能回滚

原文地址:https://www.cnblogs.com/master-road/p/10387687.html

时间: 2024-11-07 17:09:57

delete,truncate ,drop区别的相关文章

关于sql 中delete, truncate,drop的理解与总结

关于文章,本文是在网上查找资料整理而来,方便以后记忆 delete 命令删除的数据可以恢复, truncate 命令删除的数据是不可以恢复的,全删的那种 drop 命令删除的数据不可恢复,连表结构都删的那种 相同点 truncate 和不带 where 子句的 delete, 以及 drop 都会删除表内的数据. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构,drop 语句将删除表的结构被依赖的约束(constrain), 触发器(trigger), 索引(ind

truncate 、delete与drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: TRUNCATE TABLE:删除内容.释放空间但不删除定义. DELETE TABLE:删除内容不删除定义,不释放空间. DROP TABLE:删除内容和定义,释放空间. 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrai

sql中truncate、delete、drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这

SQL truncate 、delete与drop区别(转)

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这

[转载]SQL truncate、delete与drop区别

一些比较基础性的数据库知识: 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是

Truncate、delete与drop区别

truncate.delete(不带where子句)与drop的异同点: 相同之处: 三者均会删除表内的data. 不同点: <1>.truncate与不带where的delete :只删除数据,而不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger), 索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid. <2>.delete语句为DML(data maintain Language),这

sql之truncate 、delete与drop区别

相同点:truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态.2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效:如果有相应的

Oracle truncate、 delete、 drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这个

SQL truncate 、delete与drop区别

相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的约束(constrain).触发器(trigger).索引(index):依赖于该表的存储过程/函数将保留,但是变为 invalid 状态. 2. delete 语句是数据库操作语言(dml),这个