Абстрагирование ссылки на иностранную базу данных - PullRequest
1 голос
/ 19 ноября 2009

Я хочу запросить базу данных два из базы данных 1. Легко, правда?

SELECT * FROM database2.dbo.TableName

Конечно. Но что, если реальное имя базы данных2 изменится? Я должен вернуться и изменить все мои процедуры. Представьте себе, если экземпляр database2 на промежуточном сервере называется «database2_staging» ...

То, что я хотел бы, это абстракция, на которую я мог бы указать, и тогда мне нужно только изменить абстракцию. Что-то вроде:

SELECT * FROM GetSecondaryDatabaseReference (). TableName

Я смотрел на связанные серверы, но это решение будет внутрисерверным. Может быть, я мог бы связать этот же сервер с самим собой? Я не знаю.

Мысли

ТИА.

Ответы [ 2 ]

3 голосов
/ 19 ноября 2009

Вы можете использовать CREATE SYNONYM для создания синонимов для каждой удаленной таблицы и ссылаться на них во всех запросах.

1 голос
/ 19 ноября 2009

Используйте представление.

CREATE VIEW remotetable КАК SELECT ... FROM db2.dbo.table

Представление может указывать на таблицу в той же базе данных, таблицу в другой базе данных в том же экземпляре или на таблицу где-либо еще, используя связанный сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...