首页 > 解决方案 > Azure 跨数据库查询、外部资源、外部表

问题描述

我正在将我的所有VM Sql Server 2012数据库迁移到Azure Sql Database。在我当前的结构中,我使用跨数据库查询从不同的数据库表中获取数据。

我已经使用以下查询为我的父表创建了外部表

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'yourPassword';  

CREATE DATABASE SCOPED CREDENTIAL yourServeradminlogin  
WITH IDENTITY = 'yourServeradminlogin',  
SECRET = 'yourPassword';  

CREATE EXTERNAL DATA SOURCE RefmyDemoDB2  
WITH  
(  
    TYPE=RDBMS,  
    LOCATION='testdbdemoserver.database.windows.net',  
    DATABASE_NAME='myDemoDB2',  
    CREDENTIAL= yourServeradminlogin  
);  
CREATE EXTERNAL TABLE [dbo].[Department](  
    [DeptId] [int] NOT NULL,  
    [Name] [varchar](50) NULL  
)  
WITH  
(  
    DATA_SOURCE = RefmyDemoDB2  
);  


/****** Script for SelectTopNRows command from SSMS  ******/  
SELECT *  
  FROM [dbo].[Employee] E  
  INNER JOIN [dbo].[Department] D  
  ON E.DeptId = D.DeptId

我提到了这个链接https://www.c-sharpcorner.com/article/cross-database-queries-in-azure-sql/

但是当我创建外部表时,它不会在外部表文件夹中显示表,如下图所示。 在此处输入图像描述

在我的情况下,它直接显示在Tables文件夹中。

有人知道为什么我在文件夹中看不到部门表吗?External Tables如何在External Tables文件夹中添加此类表?

标签: sql-serverazureazure-sql-database

解决方案


Azure SQL 中提供的外部表仅用于支持称为“弹性查询”的功能,它可以解决您的问题:

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-query-overview

如果这对您来说还不够,并且您确实需要完整的跨数据库查询支持,则必须使用 Azure SQL 托管实例:

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance

这似乎正是您所需要的。


推荐阅读