Можем ли мы использовать соединение для двух разных таблиц базы данных?


103

Можно ли использовать операцию соединения для двух таблиц из разных баз данных? Если да, как мне это сделать?

Обе базы данных находятся на одном сервере, и СУБД одинакова.

Ответы:


191

SQL Server позволяет объединять таблицы из разных баз данных, если эти базы данных находятся на одном сервере. Синтаксис соединения такой же; единственное отличие состоит в том, что вы должны полностью указывать имена таблиц.

Предположим, у вас есть две базы данных на одном сервере - Db1и Db2. Db1есть таблица, вызываемая Clientsсо столбцом, ClientIdи Db2таблица, называемая Messagesсо столбцом ClientId(давайте не будем разбираться, почему эти таблицы находятся в разных базах данных).

Теперь, чтобы выполнить соединение с вышеупомянутыми таблицами, вы будете использовать этот запрос:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId

20
Возможно, следует отметить, что обе базы данных должны быть доступны в одном контексте безопасности. Другими словами, если вы войдете в систему с разными учетными данными для двух баз данных, вышеуказанное не будет работать. В этом случае вам, вероятно, придется использовать «Связанные серверы».
Ian Goldby 06

2

Вы можете использовать часть синонимов в базе данных.

введите описание изображения здесь

Затем в мастере просмотра на вкладке «Синонимы» найдите сохраненные синонимы, добавьте их в просмотр и просто установите внутреннее соединение. введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.