如何为特定表搜索多个数据库,返回所有行并列出相关的数据库名称

问题描述 投票:0回答:2

这是我用来查询一个数据库信息的示例。

select *
FROM DatabaseName.Act.User
where ukey = 2
order by createdate
sql
2个回答
0
投票

你可以根据要求使用union / union all

select *,'DatabaseName.Act.User'  AS TableName
FROM DatabaseName.Act.User
where ukey = 2
order by createdate
UNION ALL
select *,'DatabaseName2.Act.User' AS TableName
FROM DatabaseName2.Act.User
where ukey = 2
order by createdate

0
投票

如果您使用的是sql server,请尝试此查询。这将搜索所有数据库中的特定表

DECLARE @SQLQuery varchar(1000)
create table #user (DatabaseName varchar(128), ukey int) 
SELECT @SQLQuery = 'USE ? if exists (select top 5 * from sys.objects where [name] = ''user'' and schema_name(schema_id) = ''act'')
Begin
insert into #user (DatabaseName,ukey)
select db_name(),ukey FROM Act.[User] where ukey = 2 order by createdate
end' 
EXEC sp_MSforeachdb @SQLQuery 
select * from #user
drop table #user
© www.soinside.com 2019 - 2024. All rights reserved.