Possible but probably not worth it. You can use openrowset to do this. You can look at my example below: You will need to replace the server name with the server in question.
use master
go
drop table #tempT
create table #tempT
(
name sysname
)
insert into #tempT
values ('backupmediafamily')
select * from #tempT
update t
set name = 'new'
from ( SELECT * FROM OPENROWSET('sqloledb', 'server=YourServerName;database=master;trusted_connection=yes','exec msdb.dbo.sp_executesql N''select * from sys.tables''')) a
inner join #tempt t on t.name = a.name
select * from #tempT
If you wanted something a little more dynamic you could try this:
drop table #tempT
create table #tempT
(
name sysname
)
insert into #tempT
values ('backupmediafamily')
select * from #tempT
declare @sp_executesqltext nvarchar(max) = 'select * from sys.tables where name like ''%backup%'' '
select @sp_executesqltext = replace(@sp_executesqltext,'''','''''''''')
declare @sql nvarchar(max)
set @sql = 'update t
set name = ''new''
from ( ' +
'SELECT * FROM OPENROWSET(''sqloledb'', ''server='+@@SERVERNAME+';database=master;trusted_connection=yes'',' +
'''exec msdb.dbo.sp_executesql N'''''+@sp_executesqltext+''''''')) a
inner join #tempt t on t.name = a.name'
exec sp_executesql @sql
select * from #tempT
Lots of quotes so it will be a treat to debug if things break.