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

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

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

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

下面,上代码

 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

批量生成sqlldr文件,高速卸载数据

      SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库。SQL*Loader支...

1152
来自专栏大数据钻研

MySQL分页性能优化指南

一道面试的问题,当MySQL表中有数据量很大的时候如何做分页。。。。当时只知道在数据量很大的时候可以分表,但不知道不分表时可以怎么做。。。。唉,谁让代理商就那么...

3328
来自专栏技术博客

Oracle初级索引学习总结

   索引是常见的数据库对象,建立索引的目的是为了提高记录的检索速度。它的设置好坏,使用是否得当,极大地影响数据库应用程序和Database的性能。虽然有许多资...

872
来自专栏跟着阿笨一起玩NET

SQL Server通过整理索引碎片和重建索引提高速度

本文章转载:http://database.51cto.com/art/201108/282408.htm

2241
来自专栏杨建荣的学习笔记

通过shell脚本来统计段大小(r5笔记第14天)

今天到公司之后,就收到客户的邮件,他们提供了一个列表,希望我们能够们配合提供一份比较详细的报告,得到某些表在生产环境中所占的空间大小,他们需要根据这些信息来分析...

4077
来自专栏杨建荣的学习笔记

生产环境sql语句调优实战第八篇(r3笔记第24天)

生产环境中的sql语句执行时间是很关键的性能指标,如果某个sql语句执行几个小时,优化以后几分钟,几十秒的话。会有很大的成就感,同时如果某个sql语句执行10秒...

2727
来自专栏杨建荣的学习笔记

关于索引的使用模式(r3笔记56天)

索引的使用对于一些庞大的sql语句来说,大多数的调优场景中有种雪中送炭的感觉,如果几百万,几千万的数据筛查,全表扫描将会是一个极度消耗资源的过程,但是如果走了索...

3087
来自专栏数据库新发现

Oracle诊断案例-Sql_trace之一

http://www.eygle.com/case/sql_trace_1.htm

1043
来自专栏Jerry的SAP技术分享

使用ABAP代码返回S/4HANA Material上维护的Attachment明细

1593
来自专栏高性能服务器开发

数据库进阶4 Mysql 性能优化20个原则(2)

如果你的应用程序有很多 JOIN 查询,你应该确认两个表中Join的字段是被建过索引的。这样,MySQL内部会启动为你优化Join的SQL语句的机制。

832

扫码关注云+社区