日期:2014-05-18 浏览次数:20653 次
create procedure proc_test
AS
BEGIN
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 @sql=@sql+'select * from '+@tb+'..TTT20110101 union all select * from '+@tb+'..TTT20110102 '
if @id<>1
set @sql=@sql+' union all '
delete from @tb where id=@id
select top 1 @id,=id,@dbname=dbname from @tb order by id desc
end
exec (@sql)
END
--调用方式: exec proc_test
--试下,我没测- -
------解决方案--------------------
Select * From 机器名.ABC201101.dbo.TTT20110101
Union
Select * From 机器名.ABC201102.dbo.TTT20110101
……