SQL Server: избегая жесткого кодирования имени базы данных в представлениях между базами данных
Итак, допустим, у вас есть две базы данных SQL Server на одном сервере, которые ссылаются на таблицы друг друга в своих представлениях, функциях и хранимых процедурах.
Вы знаете, такие вещи, как это:
use database_foo
create view spaghetti
as
select f.col1, c.col2
from fusilli f
inner join database_bar.dbo.conchigli c on f.id = c.id
(Я знаю, что кросс-базы данных не очень хорошая практика, но давайте просто скажем, что вы застряли с этим)
Есть ли хорошие методы, чтобы избежать "жесткого кодирования" имен баз данных?
(Так что, если вам потребуется время от времени повторно указывать на другую базу данных - для тестирования, возможно, - вам не нужно редактировать множество представлений, fns, sps)
Я заинтересован в решениях SQL 2005 или SQL 2008. Приветствия.
1 ответ
Решение
Вы можете попробовать использовать синонимы. Таким образом, вы можете изменить то, на что указывает синоним, не меняя код.