单个数据库多张表的操作

有时候我们做统计需要给每个店铺动态创建一张表用来统计访问数据,但是随着时间推移,到时候我们有可能需要给这些表添加一个字段或是查询数据什么的。

表在实际项目中会多达上千张。

我之前有写了一些sql语句在这边分享一下。

1. 给所有的表添加一个字段IsFacebook字段。这边是操作735张表。

复制代码
 1 declare @i int select @i=1 
2 declare @sql varchar(100)
3 declare @tableName varchar(50)
4 while @i <= 735
5 begin
6 set @tableName = 'VisitLog' + cast(@i as varchar(50))
7 set @sql = 'alter table ' + @tableName + ' add IsFacebook bit default 0 NOT NULL'
8 if exists(select * from sysobjects where name = @tableName)
9 exec(@sql)
10
11 set @i=@i+1
12 end
复制代码

2. 查询所有表中记录数最多的店铺ID。这边是假设操作1700张表。

复制代码
 1 declare @i int select @i=1
2 declare @shopId int select @shopId=1
3 declare @count int
4 declare @maxCount int select @maxCount =0
5 declare @sql nvarchar(50)
6 declare @tableName nvarchar(50)
7
8 while @i <=1700
9 begin
10
11 set @tableName = 'VisitLog' + cast(@i as nvarchar(50))
12 set @sql = 'select @count = count(*) from ' + @tableName
13
14 if exists(select * from sysobjects where name = @tableName)
15 begin
16 exec sp_executesql @sql,N'@count int output', @count output
17 if @count > @maxCount
18 begin
19 set @maxCount = @count
20 set @shopId = @i
21 end
22 end
23
24 set @i=@i+1
25 end
26
27 print @maxCount
28 print @shopId
复制代码


我想有了上面这两个写法,做其他操作只要稍微做下改动代码就可以了。

不知道其他人做类似的事情也是不是写sql语句来执行还是有其他工具可以完成?

posted @   Timothy  阅读(2189)  评论(6编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示