当前位置: 代码迷 >> Sql Server >> 怎么对多个数据库中的表进行查找
  详细解决方案

怎么对多个数据库中的表进行查找

热度:88   发布时间:2016-04-27 19:15:35.0
如何对多个数据库中的表进行查找
有多个数据库名称为ABC201101,ABC201102,ABC201103……,他们中表的结构相同,每个数据库中都有一张表TTT20110101,TTT20110102由于数据库比较多,我想简单写段查询语句来实现对每个数据库中的表TTT20110101与TTT20110102中的数据进行查找(列举所有字段),TTT20110101与TTT20110102表结构一样,请高手指教,用函数可以实现吗?谢谢!

------解决方案--------------------
select * from [A库]..tb
union all
select * from [B库]..tb
------解决方案--------------------
在表前面加个库名字. 然后union all

------解决方案--------------------
SQL code
create procedure proc_testASBEGIN    set nocount on    declare @sql varchar(8000);    declare @id int;    declare @dbname varchar(30);        declare @tb table(id identity(1,1) int,dbname varchar(100))    insert into @tb(dbname)    select 'db1'    union all    select 'db2'    union all    select 'db3'    union all    select 'db4'    --... 连你的各种数据库        set @sql=""    select top 1 @id,=id,@dbname=dbname from @tb order by id desc    while isnull(@id,0)<>0    begin        set @[email protected]+'select * from [email protected]+'..TTT20110101 union all select * from [email protected]+'..TTT20110102 '        if @id<>1            set @[email protected]+' union all '        delete from @tb where [email protected]        select top 1 @id,=id,@dbname=dbname from @tb order by id desc    end    exec (@sql)END--调用方式: exec proc_test--试下,我没测- -
------解决方案--------------------
探讨
select * from [A库]..tb
union all
select * from [B库]..tb

------解决方案--------------------
如果数据库不是很多的话 可以全部穷举了 UNION ALL
如果数据库非常多的话 可以用动态语句
------解决方案--------------------
SQL code
Select * From 机器名.ABC201101.dbo.TTT20110101UnionSelect * From 机器名.ABC201102.dbo.TTT20110101……
  相关解决方案