2017-08-16 97 views
0

我在同一个SQL Azure服务器上有2个数据库,并且我在这两个数据库上都有相同的表(TB1),现在我想从DB2的TB1读取数据并将数据插入TB1 DB1。 我使用下面的查询,但得到的错误。无法在SQL Azure中执行跨数据库查询

insert into TB1 select 1,* from [DB2].dbo.TB1 

错误消息

消息40515,级别15,状态1,第16行

参考 'DB2.dbo.TB1' 数据库和/或服务器名称不支持这个版本的SQL Server。

+0

跨数据库查询不会在蔚蓝的SQL支持,尽量弹性查询 – TheGameiswar

+0

使用Azure Data Factory在Azure中将数据从一个地方移动到另一个地方。 – wBob

回答

0

您可以使用SQL Azure上的弹性查询功能执行跨数据库查询。

您将不得不创建一个外部数据源和一个外部表,以便能够查询其他SQL Azure数据库上的表。 This文章展示了如何做到这一点。

希望这会有所帮助。

1

是的,你可以使用弹性查询功能的SQL Azure.It的您可以执行跨数据库查询的唯一途径。

下面是详细的查询遵循:

运行下面的查询您的DB1(既然你说喜欢看从DB2的TB1,并将这些数据的到您的TB2在DB1)

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'STro*ngPaSSe0rD'; 

CREATE DATABASE SCOPED CREDENTIAL Login 
WITH IDENTITY = 'Login', 
SECRET = 'STro*ngPaSSe0rD'; 

CREATE EXTERNAL DATA SOURCE RemoteReferenceData 
WITH 
(
    TYPE=RDBMS, 
    LOCATION='myserver.database.windows.net', 
    DATABASE_NAME='DB2', 
    CREDENTIAL= Login 
); 




CREATE EXTERNAL TABLE [dbo].[TB1] 
(
    [Columns] [DataTypes] 
) 
WITH (DATA_SOURCE = [RemoteReferenceData]) 

这些步骤后,就可以查询外部表像普通表。尽管有一些限制,同时使用外部表,就像你能不能插入数据的外部表(参考表)

+0

试图做到这一点...在Azure上的SQL,它似乎并不喜欢的语法。 许多错误,首先是“附近有语法错误‘身份’” –