摘要: 相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据不同点:1. truncate和 delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是DML,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.truncate,drop是DDL, 操作立即生效,原数据不放到rollback segment中,不能回滚 阅读全文
posted @ 2012-11-30 10:25 Kelvinliu 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 某日递简历,顺便和面试官亲密接触,被问及上面三个数据库操作的异同,用过delete,drop未用过truncate,网页搜索,初步认识。DELETEThe DELETE command is used to remove rows from a table. A WHERE clause can be used to only remove some rows. If no WHERE condition is specified, all rows will be removed. After performing a DELETE operation you need to COMMIT 阅读全文
posted @ 2012-11-30 10:10 Kelvinliu 阅读(568) 评论(0) 推荐(0) 编辑
摘要: Truncate Table Truncate是SQL中的一个删除数据表内容的语句,用法是: 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称。 下面是对Truncate语句在MSSQLServer2000中用法和原理的说明: Truncate table 表名 速度快,而且效率高,因为: TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删... 阅读全文
posted @ 2012-11-30 10:05 Kelvinliu 阅读(367) 评论(0) 推荐(0) 编辑