近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用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 ?"
该方法可以一次清空所有表,但不能加过滤条件.
分享到:
相关推荐
.
.
近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER. 1....
用一条SqlServer语句即可删除当前数据库中所有表的数据,表的结构保持不变。
有时候需要把数据库中表记录都删除掉,为了方便我们有必要制作一个清空数据库的脚本, 这里主要是考虑存在外键约束,和标识列问题。 存在外键关系时候就要查询出,先要删除哪一张表,后要删除哪一张表, 当存在标识...
sql语句删除清空一个数据中,所有表结构表数据,请谨慎操作
asp使用SQL语句的Delete命令删除数据库表中的一个记录[参照].pdf
达梦数据库
清空sql数据库日志文件
sqlserver管理索引优化SQL语句
sql server数据库-备份、压缩、清空日志语句
declare @tab varchar(20) while exists(select * from sysobjects where xtype='u') begin select top 1 @tab=name from sysobjects where xtype='u' exec('drop table '+@tab) end
sqlserver日志清空,该语句可以快速清空日志文件,并且不影响数据库的使用
可以执行此语句清除数据库日志。 declare @db nvarchar(20) set @db='数据库名'dump transaction @db with no_log backup log @db with no_log dbcc shrinkdatabase(@db)
sql-server数据库管理工具,根据数据库账号密码ip地址,实现远程数据库连接。...可以根据表名查询表,可以输入sql语句查询表。可以导出数据库表到excel表,可以导入excel表到数据库。可以清空表。可以修改表。
--删除数据库,默认情况下,hive不允许删除含有表的数据库,要先将数据库中的表清空才能drop,否则会报错 --加入cascade关键字,可以强制删除一个数据库,默认是restrict,表示有限制的 eg. hive> drop database ...
ZenCart常用SQL语句,用于zencart系统的数据库操作
QT利用QSqlQuery类执行SQL语句并且还有对QSqlTableModel类操作。一共两种方法操作数据库。直接编译就行了,已经测试过,用的是qt5编译的。 包括:连接Mysql数据库,插入,修改,删除,查询指定数据等操作。
执行sql 语句,中间没有用到临时表 提示服务器: 消息 9002,级别 17,状态 2,行 1 数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。 网上找了下解决方案,大体是扩大临时库的日志文件...
对很多表进行删除操作时,能够比较方便!!!