在sql server中truncate、delete、drop删除表的区别,详细点,越详细越好。 100

 我来答
jippo08456
2015-07-28 · TA获得超过2630个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:631万
展开全部
truncate、delete都是删除表中的数据。truncate直接删除全部的数据,delete可以加上where条件删除部分数据。truncate效率高,直接释放多余的资源,执行后数据不可恢复,delete效率低,不释放资源,短时间内可恢复删除的记录。

drop是表数据和表定义一起都删了。
更多追问追答
追问
短时间是多久?超过多长时间就不可以恢复了?
追答
可恢复时间和数据库设置和数据库性能有关。没有具体的时长
神崎橙
2015-07-28 · TA获得超过251个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:339万
展开全部
简单来说,如果是对于 TableA 来说
1、drop table TableA ,删除表,然后你用 select * from TableA 已经提示查询出错了,表不存在
2、truncate table TableA 清空表中的数据,不能加条件,记住是全清。这个速度会比较快, 而且并不产生任何日志 ,使用 select * from TableA 可以执行,但是表里面一条数据都没有
3、delete from TableA 可以根据需要的条件删除数据,但是,如果一次删除大数据量的数据,比如删除1KW条,可能数据库会卡死╮(╯_╰)╭
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tyrantsx
2015-07-28 · TA获得超过116个赞
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:145万
展开全部
drop 删除整个表结构和里面的数据

truncate和delete只能删除表中的数据,区别如下:
truncate删除的数据不会产生日志记录
delete删除的数据会产生日志记录
追问
delete可以回滚,truncate不可以回滚。
麻烦你再说的详细点。
追答
比如你的表有100万条记录
使用DELETE语句删除这100万条数据。那么就会产生100万条日志记录。
由于某些原因我不想删除这些数据了,在执行时我取消了执行删除这个操作。(将会回滚)
由于使用的是DELETE存在日志记录。在我取消前,删除的数据就可以恢复到以前的状态。
如果使用的是TRUNCATE,在执行中取消,如果删除了50万条记录。那么这部分数据是无法恢复的。(没有日志记录无法回滚)
注意:使用TRUNCATE删除数据相当快。可能等你想取消时,数据全都已经被删除了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式