查询,可以同时查询多个数据库

declare   @db varchar(50),@tb   varchar(50),@cnt   int,@sql   nvarchar(4000)  
 ,@tableName varchar(100) ,@tableName1 varchar(100),@tableName2 varchar(100),@tb1   varchar(50),@tb2   varchar(50)
  set   @cnt=0   
  set   @tableName='Item'
/*创建临时表*/
create   table   #tb(
No_ varchar(128) collate latin1_General_CS_AS,
Qty varchar(128) collate latin1_General_CS_AS,
Status1 varchar(100) collate latin1_General_CS_AS,
Status2 varchar(100) collate latin1_General_CS_AS,
Status3 varchar(100) collate latin1_General_CS_AS

   declare db cursor for 
     select name from dbo.sysdatabases where name in('L0X32','L0X23','L0X25','L0902','L0205','L0803','L0208','L0B04')
--like 'L0%' and Status<>528 order by name
   open db 
     fetch next from db into @db
    while @@fetch_status=0
     begin 
set @cnt = @cnt+1    
      set @sql =' declare   c   cursor   for         
                  select   name   from '+@db+'..sysobjects where name<>''dtproperties''
                  and name like ''%$'+@tablename+'''' 
      exec   (@sql) 
      open   c   
        fetch   next   from   c   into   @tb 
        while   @@fetch_status=0   
           begin   
set @sql='Insert into #tb(No_,Qty,Status1,Status2,Status3) 
select '''+@db+''',[No_],[Description],[Vendor No_],[Blocked]
from '+@db+'..'+'['+@tb+'] where [No_] in(''0887280107'',''0887280108'',''0887280109'')'
print @sql
exec   (@sql)        
        fetch next from  c into @tb              
  end   
       close   c   
  deallocate   c    
      fetch next from db into @db
    end   
   close   db 
 deallocate   db 
select @cnt
select * from #tb 
drop table #tb
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值