use master
go
declare @dbName varchar(100)
declare @SQL varchar(8000)
declare @col varchar(100)
declare db_cursor cursor for
select name as 表名 from sysdatabases
declare @i int
set @i=(select count(*) from sysdatabases)
select @col='epid' --自己改相应的字段
open db_cursor
fetch next from db_cursor into @dbname
set @sql ='select name as 表名,(select '''+@dbname+''') as 数据库名 from '+@dbname+'.dbo.sysobjects where
id in(select id from '+@dbname+'.dbo.syscolumns where name like '''+@col+''')'
set @i=@i-1
while @i>0
   begin
   fetch next from db_cursor into @dbname
   set @sql =@sql+' union all select name as 表名,(select '''+@dbname+''') as 数据库名 from '+@dbname+'.dbo.sysobjects where
   id in(select id from '+@dbname+'.dbo.syscolumns where name like '''+@col+''')'
   set @i=@i-1
   end
close db_cursor
deallocate db_cursor
exec (@sql)
go