
1、delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除 *** 作作为事务记录在日志中保存
语法:DELETE FROM 表名称 WHERE 列名称 = 值,
如:删除student表中姓名为张三丰的学生信息-delete from studentwhere name=‘张三丰’;
2、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。
3、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。
注意:truncate 不能删除行数据,要删就要把表清空。
扩展资料:
数据库 *** 作中,经常要用到删除表和删除表数据,在实际应用中,三者的区别是明确的。
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete。
truncate 与delete 比较:
1、truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。
2、truncate 比 delete速度快,且使用的系统和事务日志资源少。
3、truncate *** 作后的表比Delete *** 作后的表要快得多。
用SQL语句一次清空所有数据找到了三种方法进行清空使用的数据库为MS SQL SERVER(表之间不能有外键关系)
1搜索出所有表名,构造为一条SQL语句
declare @trun_name varchar(8000)set @trun_name=''
select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0
exec (@trun_name)
该方法适合表不是非常多的情况,否则表数量过多,超过字符串的长度,不能进行完全清理
2利用游标清理所有表
declare @trun_name varchar(50)declare name_cursor cursor for
select 'truncate table ' + name from sysobjects where xtype='U' and status > 0
open name_cursor
fetch next from name_cursor into @trun_name
while @@FETCH_STATUS = 0
begin
exec (@trun_name)
print 'truncated table ' + @trun_name
fetch next from name_cursor into @trun_name
end
close name_cursor
deallocate name_cursor
这是我自己构造的,可以做为存储过程调用, 能够一次清空所有表的数据,并且还可以进行有选择的清空表
3利用微软未公开的存储过程(前提是使用sql server 2005以上版本)
exec sp_msforeachtable "truncate table "--删除当前数据库所有表中的数据sp_MSforeachtable @command1='Delete from 'sp_MSforeachtable @command1 = "TRUNCATE TABLE "
该方法可以一次清空所有表,但不能加过滤条件
引:csdn,blogcsdnnet/feiji323/article/details/5669775
楼主好,数据库清空表使用delete和truncate语句,但这两个命令语句是有区别的。首先区别在于,delete是数据库 *** 作语句而非命令语句,直接清空的是数据,能够触发触发器等 *** 作。而truncate是命令语句,不会触发触发器等 *** 作,但不能回滚。truncate语句是直接提交的数据库的,而delete是DML语句。delete还会保留数据库的高水线。打个比方,你就能知道最简单的区别。比如你的表中有一个自增长的ID,truncate之后,ID会重新开始编码,但delete会接着你删除的最大值进行编码。语法上 delete可以带where条件,删除指定数据,但truncate是不能的,只能全部清空表。下面写一下两个语句清空表的语法
delete table
truncate table
以上就是关于sql 删除语句全部的内容,包括:sql 删除语句、如何一个SQL语句就删除表中所有的数据、sqlserver 怎么清空表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)