查询中可用delete、drop、truncate table删除语句,那么它们在使用上有什么区别?希望不吝赐教
6个回答
展开全部
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。
如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。
如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。
展开全部
delete可以删除table中的行,而drop则是来删除table的
truncate table 在删除的时候不给sqlserver系统记录添加删除日志..
功能和delete 差不多
还有一点 truncate table最重要的功能..呵呵.我认为的.
比如现在你有一个表a 有一个自动标识列id
如果你id数据自动加到20了.你把表用delete删除,那么再重新插入记录 id自动标识为 21 但是你如果用truncate table 的话.那么id会从1重新标识
truncate table 在删除的时候不给sqlserver系统记录添加删除日志..
功能和delete 差不多
还有一点 truncate table最重要的功能..呵呵.我认为的.
比如现在你有一个表a 有一个自动标识列id
如果你id数据自动加到20了.你把表用delete删除,那么再重新插入记录 id自动标识为 21 但是你如果用truncate table 的话.那么id会从1重新标识
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete 删除表部分或者全部记录,可以根据条件删除
drop 删除表,当然记录也就全没了
truncate table 与delete类似,删除所有记录,不可带有where 删除同时不记录日志,所以删除速度快
drop 删除表,当然记录也就全没了
truncate table 与delete类似,删除所有记录,不可带有where 删除同时不记录日志,所以删除速度快
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete是删除表中的行,而drop则是来删除表的结构或者叫做表的定义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete可以删除table中的行,而drop则是来删除table的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete可以删除部分,drop是完全删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询