Невозможно выполнить запрос между базами данных в SQL Azure
У меня есть база данных SQL Azure Database, и мне нужно запросить между Базами данных, но не могу понять, как это сделать.
Вот структура моих баз данных:
- Server.X
- Database.A
- Database.B
- Database.C
В Database.A У меня есть хранимая процедура, которая должна извлекать данные из Database.B. Как правило, я бы ссылался на базу данных как SELECT * FROM [Database.B].[dbo].[MyTable]
, но это не похоже на разрешение в SQL Azure.
Msg 40515, Level 15, State 1, Line 16
Reference to database and/or server name in 'Database.B.dbo.MyTable' is not supported in this version of SQL Server.
Есть ли способ сделать это в конце базы данных?
В окончательной версии базы данных A и C будут нуждаться в данных из базы данных B.
Ответы
Ответ 1
Обновление:
Согласно комментариям и ответам Illuminati, ситуация изменилась с тех пор, как этот ответ был первоначально принят, и теперь есть поддержка кросс-запросов к базе данных по https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
Оригинальный ответ (2013):
Кросс-запросы базы данных не поддерживаются в SQL Azure. Это означает, что вам необходимо либо объединить базы данных для предотвращения необходимости в первую очередь, либо запросить обе базы данных самостоятельно и в основном присоединиться к данным в вашем приложении.
Ответ 2
В SQL Azure теперь поддерживаются запросы на кросс-базу данных
https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
Ответ 3
Azure SQL DB выполняет предварительный просмотр функции Elastic Database Query в этот момент времени, что поможет вам запросить среди Azure SQL DB с некоторыми ограничениями. Вы можете получить подробную информацию о функции здесь.