Запрос кросс-базы данных SQL Server с использованием псевдонима или синонима

Мы разрабатываем базу данных, которая объединяет несколько баз данных SQL Server для требований отчетности. Каждая БД имеет несколько представлений. Никакие прямые таблицы или объекты SP не должны быть доступны. Все БД и новая БД находятся на одном сервере. Таким образом, мы можем довольно легко разрабатывать запросы между базами данных с полными именами объектов.

i.e SELECT * FROM [SERVER].[DATABASE].[Schema].[View]

Проблема заключается в том, что имена зависимых баз данных различаются между средами разработки/постановки/производства зависимых баз данных.

Мы исследовали подход Synonym для отдельных представлений и отлично работали. Совет, который мы пытаемся получить от кого-то из экспертов, заключается в том, что лучше всего придерживаться создания единой точки для поддержки этого псевдонима базы данных вместо создания синонимов для каждого представления, чтобы мы могли делать это один раз для каждой среды и поддерживать новые запросы. одинаково в разных средах.


person Randi Ratnayake    schedule 22.01.2019    source источник
comment
stackoverflow.com/questions/6555646/   -  person Daniel E.    schedule 22.01.2019
comment
@ДэниэлЭ. по-прежнему относится к варианту синонима, который мы искали, и не решает проблему необходимости жесткого кодирования имени базы данных.   -  person Randi Ratnayake    schedule 22.01.2019
comment
Я думаю, у вас может быть таблица, в которой вы можете хранить имена db/server/view по общему идентификатору. позже в начале вашего запроса вы можете установить переменную с правильным значением, выполнив команду выбора. а затем сделайте свой запрос подготовленным оператором/строкой (@SqlStatement), где вы можете объединить имя таблицы/представления/БД/сервера из соответствующих переменных, и, наконец, вам нужно будет использовать EXEC sp_executeSQL @SqlStatement. Это означает, что у вас будет список объектов в таблице в виде строки, и вы можете использовать его для всех env или сделать его специфичным для env. Извините за эссе   -  person Sabbir Hassan    schedule 22.01.2019