2012-07-01 40 views
37

我有一个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.

有没有办法做到这一点上的数据库结束了吗?

在最终版本的数据库从数据库B.一个& C的温度将都需要数据

+0

你找到一个解决方案或办法acomplish呢? – Rahnzo

+0

对于那些想要快速解决这个问题的人来说(当涉及到导入数据时),您可以创建一个与您想要的结构相同的新表,从其他数据库导出数据并添加到此新表中。After您可以使用您的逻辑导入数据(我的情况) –

+0

快速修复:删除'[Database.B]。[dbo] .' –

回答

37

更新:

按照光明的评论和答复,情况发生了改变,因为这个答案最初接受现在有跨数据库查询支持按https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/

原来的答案(2013年): 克罗SQL Azure不支持数据库查询。这意味着您需要组合数据库以避免首先需要,或者独立查询两个数据库,并基本上将您的应用程序中的数据加入。

+4

投票支持http://feedback.windowsazure.com/forums/217321-sql-数据库/建议/ 402636-cross-database-reference – joeriks

+3

这仍然是这种情况吗? :o –

+0

@ CaiusJard-今天仍然如此,这就是为什么我遇到这个问题和答案。 –

8

Azure SQL DB在此时预览弹性数据库查询功能,可以帮助您在Azure SQL DB中进行查询,但有一些限制。您可以获得有关功能here的详细信息。