Sharing stored procedure across database using synonyms
===

I have two different SQL Server databases (on the same server - if it helps) that need to share the same stored procedure logic.  The solution I'm trying to achieve looks like this:

    Database1
      Table: TestTable
      Synonym: sp_MyProc pointing at SharedDatabase.dbo.sp_MyProc
    
    Database2
      Table: TestTable
      Synonym: sp_MyProc pointing at SharedDatabase.dbo.sp_MyProc
    
    SharedDatabase
      Proc: sp_MyProc which runs queries against TestTable

My hope was to use the synonyms so that if I execute sp_MyProc while in the context of Database1, it would use Database2.TestTable.  And if I execute sp_MyProc while in the context of Database2, it would go against Database2.TestTable.  However, when I execute sp_MyProc through either of the synonyms, it ignores the context of the synonym and executes looking for a local copy of TestTable, which is not found.

Is there a way to implement a shared stored procedure that executes against different copies of tables in different databases, either through synonyms or some other mechanism?