sql中delete,drop
,truncate都代表删除,但3者又有一些区别
1
truncate和
delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);
依赖于该表的存储过程/函数将保留,但是变为invalid状态
2delete语句是dml,这个 *** 作会放到rollback
segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发
truncate,drop是ddl,
*** 作立即生效,原数据不放到rollback
segment中,不能回滚
*** 作不触发trigger
3delete语句不影响表所占用的extent,
高水线(high
watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate
语句缺省情况下见空间释放到
minextents个
extent,除非使用reuse
storage;
truncate会将高水线复位(回到最开始)
4速度,一般来说:
drop>;
truncate
>;
delete
5安全性:小心使用drop
和truncate,尤其没有备份的时候否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句
回滚段要足够大
想删除表,当然用drop
想保留表而将所有数据删除
如果和事务无关,用truncate即可
如果和事务有关,或者想触发trigger,还是用delete
如果是整理表内部的碎片,可以用truncate跟上reuse
stroage,再重新导入/插入数据
在实际应用中,三者的区别是明确的。
当你不再需要该表时,
用
drop;
当你仍要保留该表,但要删除所有记录时,
用
truncate;
当你要删除部分记录时(always
with
a
WHERE
clause),
用
delete
而alter是对表结构的修改
希望对你理解有帮助。
视图是随数据库保存的。当您从服务器资源管理器中删除视图时,它也会从数据库中删除。说明对于与某些数据库管理系统的连接,删除视图并不完全可用。说明对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见
以上就是关于VFP中SQL语句中视图删除命令全部的内容,包括:VFP中SQL语句中视图删除命令、如何:从数据库中删除视图、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)