Well. it was a good idea ... but evidently the synonym has to refer to a 'final' object (table or view or stored proc)... and the [servername].[databasename] portion is not enough ....
I created a synonym in my main database using
create synonym xyz for [server2].[database2]
Which it accepted without complaint...
Then I tried (from my main database)
select * from xyz.sometablename
and it tells me 'invalid object name 'xyz.sometablename'
When I create the synonym using .
create synonym xyz for [server2].[database2].[sometablename]
then
select * from xyz
it works just fine....
It seems like you need one synonym for each table/view in the other database and can't just have a synonym refer to the higher level object (server.database) only.