SQLSERVER:通过sys.tables实现批量删表、快速统计多表记录和

本文介绍如何使用SQL Server的sys.tables进行批量删除表的操作,并提供了一个动态统计特定表每秒插入记录数的方法。

SQLSERVER:通过sys.tables实现批量删表,或者回滚表

 1 begin try
 2     drop table #temp10
 3 end try
 4 begin catch
 5 end catch
 6 
 7 select 'drop/*truncate*/ table dbo.'+name as droptable,ROW_NUMBER() over(order by name) as rownumber 
 8 into #temp10
 9 from sys.tables where name like 'member%' and SCHEMA_NAME(schema_id)='dbo'
10 
11 select * from #temp10
12 
13 declare @rownumber int;
14 declare @records int;
15 declare @droptable  nvarchar(64);
16 
17 select @records=MAX(rownumber) from #temp10
18 
19 set @rownumber=1;
20 
21 while @rownumber<=@records 
22 begin 
23     select @droptable = droptable from #temp10 where rownumber=@rownumber
24     print @droptable
25     exec sp_executesql @droptable
26     
27     set @rownumber=@rownumber+1;
28 end

动态统计数据库,某表每秒插入记录量

 1 declare @records int;
 2   
 3 while 0=0
 4 begin 
 5     waitfor delay '00:00:01'   -- 每间隔1s,执行一次
 6    
 7     select @records=isnull(sum(t10.rows),0)
 8     from sys.partitions as t10 
 9         inner join sys.objects as t11 on t10.object_id=t11.object_id
10     where t11.name like 'member%' 
11     and t10.partition_number=2 -- 当前数据插入到那个分区了,就写那个分区.如果没有分区,该条件可以不加
12     and t10.index_id>=2
13     
14     print @records
15 end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值