无法在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的数据。
更新:
根据光明的评论和答复,情况已经改变,因为这个答案最初被接受,现在支持跨数据库查询按照https://azure.microsoft.com/en-us/blog/querying-remote-databases-在-天青-SQL分贝/
原始答案(2013): SQL Azure中不支持跨数据库查询。 这意味着您需要将数据库组合起来以防止出现需求,或者独立查询两个数据库,并基本上将数据join到应用程序中。
SQL Azure现在支持跨数据库查询
https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/
Azure SQL DB在此时预览Elastic Database Queryfunction,这将有助于您在Azure SQL DB中进行查询,但有一些限制。 您可以在这里获得有关该function的详细信息。