2012-05-04 6 views
1

У меня есть две разные базы данных в SQL Server, скажем, db1 и db2, и мне нужно объединить данные между ними, но используя мое приложение, которое имеет доступ только к db1.Доступ к различным базам данных как один в SQL Server

Итак, я подумал о двух возможностях: первый из них - создать представление в db 1, которое читает данные из db 2. Второй - создать какую-то логическую или виртуальную базу данных, вроде db3, поэтому я могут обращаться к db1 и db2 через db3. Является ли это возможным?

Открыт для других предложений.

ответ

1

Вид хороший вариант, я не вижу необходимости в «виртуальном» db. Используйте принцип KISS.

+0

Мне нравится вид. Меня беспокоит только то, что имя базы данных в представлении для доступа к db2 должно быть исправлено. Когда я работаю для дома SW, имена базы данных меняются между некоторыми клиентами, и в этом случае мы вынуждены вручную изменять представления. Если есть трюк, я не знаю! –

0

"логическая или виртуальная база данных"? нет необходимости. Предполагая, что БД находятся на одном сервере, представление или даже прямой выбор, например select * from db2.dbo.table, сделает трюк

Если это не так, вам нужно создать связанный сервер в DB1, указывающий на DB2

0

Да, создайте хранимую процедуру и выполните SQL-запрос «union/join».

В SQL Query в «от» пункт вам нужно написать «из [DatabaseName]. [Схема]. [Таблица]»

Вам необходимо провести хранимую процедуру в базе данных, где ваше приложение имеет доступ к.