遍历数据库服务器找出记录


declare DB_Cursor cursor FOR
select name AS DB_NAME from master..sysdatabases where [name] NOT IN ('master','tempdb','model','msdb')
open DB_Cursor
DECLARE @DB_NAME varchar(50), @strSql varchar(1000), @DB_NAME_LIST varchar(4000)
set @DB_NAME_LIST = ''
fetch next from DB_Cursor INTO @DB_NAME
while(@@fetch_status=0)
 BEGIN
  set @strSql = 'Use [' + @DB_NAME + '] ';
  set @strSql = @strSql + '
  if exists (select * from sysobjects where id = object_id(N''[表名]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1) Begin  
  select ''' + @DB_NAME + ''' as 项目名称,* from 表名 where 条件   End
  ';
  exec (@strSql)
  set @DB_NAME_LIST = @DB_NAME_LIST + @strSql  

  --读取下一条记录
  fetch next from DB_Cursor INTO @DB_NAME
 END
close DB_Cursor
--释放游标
deallocate DB_Cursor
PRINT @DB_NAME_LIST

posted @ 2012-09-07 20:08  zzljh  阅读(200)  评论(0编辑  收藏  举报