清空数据库中所有表记录,记录ID恢复从0开始
2010-08-25 18:58
274 查看
近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用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.利用微软未公开的存储过程
exec sp_msforeachtable "truncate table ?"
该方法可以一次清空所有表,但不能加过滤条件.
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.利用微软未公开的存储过程
exec sp_msforeachtable "truncate table ?"
该方法可以一次清空所有表,但不能加过滤条件.
相关文章推荐
- 清空数据库中所有表记录 记录ID恢复从0开始
- 清空数据库,或者说让id这个主键从1从新开始的方法
- 数据库 id 恢复从1开始
- 数据库 id 恢复从1开始
- 批量删除数据库中所有表的记录(清空数据库)
- 清空表后,恢复Id从1开始
- magento -- 如何清空掉magento数据库的所有产品(比如在一次失误的导入或者清空测试导入记录)
- 织梦dedecms清空文章并恢复文章ID从1开始
- 清空数据库并将id从1开始排序
- 清空 sql server 数据库所有的表记录
- 批量删除数据库中所有表的记录(清空数据库)
- sql 2000清空后让表的id从1开始等数据库操作
- 数据库表初始化,删除所有数据后主键ID从1开始
- 清空数据库内某一张表的数据id从1开始增长
- SQL Server 文档整理 - 2 清空所有数据库表记录的存储过程
- sql 2000清空后让表的id从1开始等数据库操作
- sql中删除表中所有记录and自增列清空
- 利用MySQL查询所有数据库表以及表中的记录数
- dedecms清空栏目后,新建ID不从1开始的解决方法