SQL中一次清空数据库全部数据的语句写法[MSSQL防范]
本文“SQL中一次清空数据库全部数据的语句写法[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
下面将为您介绍SQL中一次清空数据库全部数据的语句写法,供您参考,假如您在利用SQL数据库时也碰到了近似的问题,无妨一看,相信对您会有所启迪.
近来发现数据库过大,空间不足,因此打算将数据库的数据举行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想操纵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中一次清空数据库全部数据的语句写法[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |