数据库中多张表的所有字段都相同,怎么用一条sql语句查询这些数据的个数,不然一个表一个表查询太麻烦了

比如:100张表,现在我是这样写的:selectcount(*)fromtable1,selectcount(*)fromtable2,...就这样一直查,这太麻烦了... 比如:100张表,现在我是这样写的:select count(*) from table1,select count(*) from table2,...就这样一直查,这太麻烦了 展开
 我来答
masterlonely
2012-04-20 · TA获得超过204个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:136万
展开全部
说一下几种思路:
一、如果你的表名是有规律的,就用循环组合成sql,再执行。如:
declare @i int,@sql varchar(1000)
set @i=1
while @i<10
begin
set @sql='select count(*) from table'+convert(varchar,@i)
exec @sql
end

二、把表名从系统表里取出,来组成sql
select ''select count(*) from '+name from sysobjects where xtype='u'
再把sql取出来执行既可。

三、如果你有兴趣研究,还可以使用微软未公开的存储过程来处理 sp_MSforeachtable。这个就不详写了。
百度网友3a8f439
2012-04-20 · TA获得超过300个赞
知道小有建树答主
回答量:224
采纳率:100%
帮助的人:160万
展开全部
查询这张表User_Tables的num_rows字段,如果你查询的表名有相似性,where条件中可以用like,如果没有那你就把表名列上吧in ()
比如:
select table_name,num_rows from User_Tables WHERE table_name LIKE 'TS%';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jack3709
2012-04-20 · TA获得超过384个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:155万
展开全部
这些表名,好像是存放在一张系统表中的,这样写不知道对不对,你可以试试
select count(*) from (这里写条SQL语句,从系统表中查出你的表);
我也不知道对不对,本机没数据库测试,lz自己试试吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gal1024
2012-04-20 · 超过18用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:49.6万
展开全部
能把表 union 一下吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式