在sql server中truncate、delete、drop删除表的区别,详细点,越详细越好。 100
3个回答
展开全部
简单来说,如果是对于 TableA 来说
1、drop table TableA ,删除表,然后你用 select * from TableA 已经提示查询出错了,表不存在
2、truncate table TableA 清空表中的数据,不能加条件,记住是全清。这个速度会比较快, 而且并不产生任何日志 ,使用 select * from TableA 可以执行,但是表里面一条数据都没有
3、delete from TableA 可以根据需要的条件删除数据,但是,如果一次删除大数据量的数据,比如删除1KW条,可能数据库会卡死╮(╯_╰)╭
1、drop table TableA ,删除表,然后你用 select * from TableA 已经提示查询出错了,表不存在
2、truncate table TableA 清空表中的数据,不能加条件,记住是全清。这个速度会比较快, 而且并不产生任何日志 ,使用 select * from TableA 可以执行,但是表里面一条数据都没有
3、delete from TableA 可以根据需要的条件删除数据,但是,如果一次删除大数据量的数据,比如删除1KW条,可能数据库会卡死╮(╯_╰)╭
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
drop 删除整个表结构和里面的数据
truncate和delete只能删除表中的数据,区别如下:
truncate删除的数据不会产生日志记录
delete删除的数据会产生日志记录
truncate和delete只能删除表中的数据,区别如下:
truncate删除的数据不会产生日志记录
delete删除的数据会产生日志记录
追问
delete可以回滚,truncate不可以回滚。
麻烦你再说的详细点。
追答
比如你的表有100万条记录
使用DELETE语句删除这100万条数据。那么就会产生100万条日志记录。
由于某些原因我不想删除这些数据了,在执行时我取消了执行删除这个操作。(将会回滚)
由于使用的是DELETE存在日志记录。在我取消前,删除的数据就可以恢复到以前的状态。
如果使用的是TRUNCATE,在执行中取消,如果删除了50万条记录。那么这部分数据是无法恢复的。(没有日志记录无法回滚)
注意:使用TRUNCATE删除数据相当快。可能等你想取消时,数据全都已经被删除了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询