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
时间: 2024-10-11 20:12:19

Sql Server利用游标批量清空数据表的相关文章

SqlServer 利用游标批量更新数据

原文:SqlServer 利用游标批量更新数据 SqlServer 利用游标批量更新数据 Intro# 游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了 Sample# 下面来看一个实际示例: Copy -- 声明字段变量 DECLARE @RegionCode INT; DECLARE @RegionName NVARCHAR(64); DECLARE @ProvinceId INT; -- 声明游标 DECLARE P

SQL Server 通过游标重新定义单据数据的单据编号

DECLARE @Index INTSET @Index=100DECLARE UpdateCursor  CURSOR  FOR (SELECT DISTINCT AA.Id FROM dbo.表 AA  WHERE  数据过滤条件 )OPEN UpdateCursorDECLARE @DetailId NVARCHAR(36)DECLARE @Name NVARCHAR(36)FETCH NEXT FROM UpdateCursor INTO @DetailIdWHILE @@FETCH_S

sql server 数据库之间导入导出数据表

1.点击源数据库右键->任务->导出数据 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

SQL Server 利用批量(batchsize)提交加快数据生成/导入

在最小化日志操作解析,应用的文章中有朋友反映生成测试数据较慢.在此跟大家分享一个简单的应用,在生成数据过程中采用批量提交的方式以加快数据导入. 此应用不光生成测试数据上,在BCP导入数据中,复制初始化快照过程中等都可以根据系统环境调整 batchSize 的大小来提高导入/初始化速度. 应用思想:这里简单介绍下组提交概念,由于关系型数据库依靠日志来保证数据完整性,即先写日志,每当一个事务完成时就需要commit日志刷入磁盘,在高并发短小事务的前提下由于日志频繁落盘导致整体写吞吐下降.用Group

SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

原文:SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页) SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ crea

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据 在 SQL Server 2014 中,您可以通过将 bcp 与 -V 开关一起使用,从 SQL Server 2000.SQL Server 2005.SQL Server 2008.SQL Server 2008 R2 或 SQL Server 2012 中导入本机和字符格式数据. -V 开关将使 SQL Server 2014 使用指定的 SQL Server 早期版本中的数据类型,并且数据文件格式与早期版本中的格式相

????SQL Server中默认数据库和默认表的作用

我们知道Oracle数据库的安装架构可以是1个数据库对应1个或多个实例.而在SQL Server中,其架构和Oracle 完全相反,它是1个实例(默认实例名为Hostname主机名)下面包含多个数据库,在sqlserver数据库中(2000,2005,2008等),主要包含4个默认的数据库,分别是master数据库.model数据库.tempdb数据库和msdb数据库.这些数据库是SQL Server的心脏和灵魂.另外,还默认安装了两个实例数据库,分别是:northwind数据库和pubs数据库

使用一个T-SQL语句批量查询数据表占用空间及其行数

原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: USE ADVENTUREWORKS GO EXEC sp_spaceused [Sales.SalesOrderHeader] GO 但如果数据库中包含数千的数据表,如何能利用一句SQL语句来实现? 解决方法: 一.动态SQL: 先用T-SQL动态产生表达式,然后放到一个查询中执行.如: USE A

BCP是SQL Server中负责导入导出数据的一个命令行工具

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.BCP可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中. 下面将详细讨论如何利用BCP导入导出数据. 1. BCP的主要参数介绍 BCP共有四个动作可以选择. (1) 导入. 这个动作使用in命令完成,后面