SQL中一次清空数据库所有数据的语句写法

数据库 SQL Server
如果需要将数据库的全部数据都一次清空,SQL语句应该如何写呢?下面将为您介绍SQL中一次清空数据库所有数据的语句写法,供您参考。

下面将为您介绍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语句

SQL中的分页查询语句介绍

教您使用参数化SQL语句

批处理SQL语句的执行效率提高的方法

SQL语句中特殊字符的处理方法

 

责任编辑:段燃 来源: 互联网
相关推荐

2019-04-04 15:00:40

SQL索引数据库

2010-07-12 17:12:48

SQL Server数

2010-09-25 15:37:38

SQL语句

2017-03-14 14:09:08

数据库Oracle备份

2010-09-02 11:24:45

SQL删除

2023-09-26 07:40:48

数据库产品Oracle

2011-08-09 17:24:21

SQL Server 数据库日志

2010-09-17 13:54:02

SQL语句

2023-11-29 12:12:24

Oceanbase数据库

2010-09-03 13:40:24

SQL删除

2011-06-03 10:31:14

SQL

2010-05-12 15:07:50

MySQLSQL数据库

2011-01-06 09:28:19

SQL语句

2010-09-07 16:12:36

SQL语句数据库压缩

2009-12-11 13:43:55

PHP获得所有数据库

2021-04-30 15:34:23

Python 开发编程语言

2021-04-29 22:38:04

Python数据库SQL

2018-12-06 16:25:39

数据库服务器线程池

2010-05-11 10:12:50

mysql数据库sql

2021-10-14 10:53:20

数据库查询超时
点赞
收藏

51CTO技术栈公众号