У меня есть две разные базы данных SQL Server (на том же сервере - если это помогает), которым необходимо разделить одну и ту же логику хранимых процедур. Решение, которое я пытаюсь достичь, выглядит так:Совместное использование хранимой процедуры в базе данных с использованием синонимов
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
Моя надежда использовать синонимы, так что если я исполню sp_MyProc в то время как в контексте Database1, он будет использовать Database2.TestTable. И если я выполняю sp_MyProc, а в контексте Database2, это будет противоречить Database2.TestTable. Однако, когда я выполняю sp_MyProc через любой из синонимов, он игнорирует контекст синонима и выполняет поиск локальной копии TestTable, которая не найдена.
Есть ли способ реализовать общую хранимую процедуру, которая выполняется против разных копий таблиц в разных базах данных, либо через синонимы, либо какой-либо другой механизм?
Редактировать
Следует отметить, что в моем случае я ищу, чтобы сделать это с большим набором существующих таблиц и проки, так что любое решение, которое требует модификации проки или таблицы сами не являются идеальными.
Это то, что я ищу. – Gisway