Не удается выполнить запрос между базами данных в SQL Azure
У меня есть сервер баз данных SQL Azure, и мне нужно выполнять запросы между базами данных, но я не могу понять, как это сделать.
Вот структура моих баз данных:
- 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.
3 ответа
Обновить:
Согласно комментарию и ответу Иллуминати, ситуация изменилась с тех пор, как этот ответ был первоначально принят, и теперь есть поддержка кросс-запросов к базе данных согласно https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
Оригинальный ответ (2013): кросс-запросы к базе данных не поддерживаются в SQL Azure. Это означает, что вам нужно либо объединить базы данных, чтобы предотвратить необходимость, либо запросить обе базы данных независимо и в основном объединить данные в вашем приложении.
Кросс-запросы к базе данных теперь поддерживаются в SQL Azure.
https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
На данный момент Azure SQL DB просматривает функцию Elastic Database Query, которая поможет вам выполнять запросы среди SQL Azure DB с некоторыми ограничениями. Вы можете получить подробную информацию об этой функции здесь.