SQL Server: избегая жесткого кодирования имени базы данных в представлениях между базами данных - PullRequest
2 голосов
/ 15 февраля 2011

Итак, допустим, у вас есть две базы данных 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 Ответ

8 голосов
/ 15 февраля 2011

Вы можете попробовать использовать Синонимы . Таким образом, вы можете изменить то, на что указывает синоним, не меняя код.

...