谁能告诉我SQL server里,删除语句 Drop、DELETE、TRUNCATE三者有什么区别
7个回答
2013-03-29
展开全部
您好,drop的意思是删除表或者库。例如drop database 图书:删除图书库,是库删除了,库的所有的东西都没了。delete是删除表里的数据,是一行数据,不是删除某个数据,是一行,比如说是删除一个人的整条读者数据。 TRUNCATE是删除某个数据,具体到某个,列仍然保留,只是数据没了。希望能解决你的问题
展开全部
--删除表结构,并删除里边的数据及在这个表上的索引等等
drop table 表名
--清空数据,只是数据
truncate table 表名
--按条件删除数据
delete from 表名 where 条件
--删除全部数据,但不释放空间
delete from 表名
这么看,
delete from 表名
和
truncate table 表名
似乎是一样的,但是truncate 执行后会释放数据库的空间,而delete不会释放空间
drop table 表名 的话,也是可以释放空间的
执行truncate 和drop后,会导致触发器,存储过程,函数等等的失效,truncate的话,可以重新编译一下,即可,但是drop后,可能就会永久失效了
drop table 表名
--清空数据,只是数据
truncate table 表名
--按条件删除数据
delete from 表名 where 条件
--删除全部数据,但不释放空间
delete from 表名
这么看,
delete from 表名
和
truncate table 表名
似乎是一样的,但是truncate 执行后会释放数据库的空间,而delete不会释放空间
drop table 表名 的话,也是可以释放空间的
执行truncate 和drop后,会导致触发器,存储过程,函数等等的失效,truncate的话,可以重新编译一下,即可,但是drop后,可能就会永久失效了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete语句的功能是从指定的表中删除满足where子句条件的所有元组,一般说就是删除表内的数据不是表的定义。truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
SQL中使用delete删除数据后,是可以进行回滚恢复的,具体方法如下1 连接到被删除数据库的Db 打开log explorer 选择 "file "-> "attach log file "-> 选择服务器和登陆方式-> "connect "-> 选择 "数据库 "-> "attach " 2 查看日志 在左面操作项目的对话框中选择 "browse "项目-> "view log "-> 就可以看到当前的Log记录了 3 恢复数据
右键某一条log记录,选择 "undo transation "-> "选择保存文件名和路径 "-> 然后打开该文件到查询分析器里执行
T-sql代码就可以了 需要注意的是:truncate和drop删除数据后,无法恢复,所以使用删除命令时,一定要谨慎,做好备份。
右键某一条log记录,选择 "undo transation "-> "选择保存文件名和路径 "-> 然后打开该文件到查询分析器里执行
T-sql代码就可以了 需要注意的是:truncate和drop删除数据后,无法恢复,所以使用删除命令时,一定要谨慎,做好备份。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
drop 是把表和 数据 都删掉了 delete是把表里的某个元组 及里面的某个 数据 删掉了 truncate是把表里的数据全部 删掉 但表的结果 没删掉 只是 数据全删掉了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询