快速删除数据库中的所有表记录
2016-02-22 15:37
288 查看
除指定数据库中所有表的记录,就是要一个空的数据库。
方法如下:
一:
二:
1.Delete
declare @sql varchar(5000)
set @sql = ''
select @sql = @sql +'delete
from '+[name]+';' from sysobjects where xtype='u'
print @sql
exec(@sql)
2.Turncate
(1) declare @sql varchar(5000)
set @sql = ''
select @sql = @sql +'truncate
table '+[name]+';' from sysobjects where xtype='u'
print @sql
exec(@sql)
(2)使用游标
---- 清除指定数据库各个表中所有的记录
方法如下:
一:
SQL中delete 与 truncate table 的比较
delete 适用于限定范围的删除,例如: delete titles where type = "business" 由于 delete 的同时写事务日志,所以速度稍慢,但当误操作以及灾难发 生时,可以进行恢复。 没有限定范围的删除不推荐使用 delete ,因为速度实在是慢。 truncate table 在执行时只是简单地收回分配给一个表及它的索引的所有空间,而不是从 表中一行一行地进行删除。这种方法本质上要比未加限定的 delete 快得 多,特别是对一大型表进行操作时。 truncate table 执行得快的原因是在于它不会在收回空间时记录单个的 行删除。但在采用了 truncate table 后,在灾难发生时恢复数据库的能 力会打折扣。除非先运行一次完整备份( dump database ) 每当从服务器移进和移出大块的测试数据,和准备服务器迁移时, truncate 在执行时只是简单地收回分配给一个表及它的索引的所有空间,而不是从 表中一行一行地进行删除。这种方法本质上要比未加限定的 delete 快得 多,特别是对一大型表进行操作时。 truncate table 执行得快的原因是在于它不会在收回空间时记录单个的 行删除。但在采用了 truncate table 后,在灾难发生时恢复数据库的能 力会打折扣。除非先运行一次完整备份( dump database ) 每当从服务器移进和移出大块的测试数据,和准备服务器迁移时, truncate table 是最常使用的方法。 delete 和 truncate table 都只是删除了表中的行,并没有删除整个表的定义, 如果想删除整个表的定义,应使用 drop table 。 注意: 对于含有 Identity Column (自动增量或减量)的表使用 delete 删除行的时候,Identity Column 的初值并不会还原,例如:ID 是表 Title 中的 Identity Column , Seed Value 为 1,Incerment 为 1; 表中有100 条记录, ID已经是100, 做 delete 删除后,增加一条记录,ID 为 101 。而如果这里使用 truncate table, Identity Column 的初值会自动还原,即用 truncate table 删除 后,增加一条记录,ID 为 1。 |
1.Delete
declare @sql varchar(5000)
set @sql = ''
select @sql = @sql +'delete
from '+[name]+';' from sysobjects where xtype='u'
print @sql
exec(@sql)
2.Turncate
(1) declare @sql varchar(5000)
set @sql = ''
select @sql = @sql +'truncate
table '+[name]+';' from sysobjects where xtype='u'
print @sql
exec(@sql)
(2)使用游标
---- 清除指定数据库各个表中所有的记录
相关文章推荐
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- QSqlDatabase操作数据库sqlite3
- MySQL优化经验
- mysql innodb 崩溃不能启动
- 个人遇到的SQL错误零散汇总
- ListView 批量删除、数据库同步
- mysql修改root密码
- MySQL处理重复数据的方法
- oracle to_number
- windows下mongodb安装
- 【10】AngularJS SQL
- SQL基础
- 关于Oracle中分区表Partition与引用型游标ref cursor的应用范例
- 查看mysql改写后的sql
- 一些php操作redis常用方法代码
- oracle对序列的操作
- (引文)可扩展的分布式数据库架构
- Redis (1) —— 安装
- MySQL中备份的几种方式
- Entity Framework数据库初始化