Sql Server利用游标批量清空数据表

时间:2022-01-01 03:35:28

先吐槽一下,由于公司要为新客户部署一个全新的系统,然而公司并没有空库,所以只能把正在线上运行的数据库给备份,然后清空相关数据

下面分享一下我在做清空数据库时写的一个批量清空数据表的方法

 

思路:查询出该库下的所有表 根据表名(系统相关数据表取名都是有规律的)筛选出需要清空的表

 

下面,上代码

 1 USE [DataBase]
2 GO
3 DECLARE @name varchar(50)
4 DECLARE @count int
5 set @count=0
6 DECLARE contact_cursor CURSOR FOR
7 select name from sysobjects
8 where xtype='u' and name like 'tb_xxx_%'--根据条件筛选表名
9
10 OPEN contact_cursor
11
12
13 FETCH NEXT FROM contact_cursor
14 INTO @name--表名
15
16 WHILE @@FETCH_STATUS = 0
17 BEGIN
18 print '已经清空表'+@name
19 set @count=@count+1
20 exec('truncate table '+@name)
21 FETCH NEXT FROM contact_cursor
22 INTO @name
23 END
24 print '处理完成,共清空数据表'+convert(varchar(50),@count)+''
25 CLOSE contact_cursor
26 DEALLOCATE contact_cursor
27 GO