如何跨两个 Azure SQL Server 数据库链接两个同名表?

Yos*_* G. 2 sql-server azure-sql-database

我过去曾使用范围数据库凭据、外部数据源和外部表在一个数据库中构建到另一数据库中的表的链接。但是,到目前为止,我发现只有当两个数据库中的表名称不同(按名称或按模式)时,此方法才有效。这是因为链接期望“源”数据库中定义的外部表的名称与“目标”数据库中的表的名称完全匹配。

我拥有的是两个数据库,它们是彼此的“镜像”。每个数据库都有一个名为 [dbo].[Customers] 的表。在 DatabaseA 中,已经有一个名为 [dbo].[Customers] 的表,如何链接到 DatabaseB 中的 [dbo].[Customers]?SQL 不允许我在 DatabaseA 中构建名为 [dbo].[Customers] 的外部表,因为它已经存在。我可以构建一个名为 [ext].[Customers] 的 EXTERNAL 表,但它不会映射到 DatabaseB 中的表,因为 DatabaseB 中没有 [ext].[Customers]。

所以这就是我的问题归结为 - 有没有办法在 DatabaseA 中创建一个名为 [ext].[Customers] 的外部表并将其映射到 DatabaseB 中的 [dbo].[Customers]?

Dav*_*oft 5

您可以在CREATE EXTERNAL TABLE中指定远程模式和对象名称,例如

CREATE EXTERNAL TABLE ext.Customers
(   
  [CustomerID] int NOT NULL,
  [CustomerName] varchar(50) NOT NULL,
  [Company] varchar(50) NOT NULL
)
WITH
( 
  DATA_SOURCE = MyElasticDBQueryDataSrc,
  SCHEMA_NAME = N'dbo',  
  OBJECT_NAME = N'Customers'  
)
Run Code Online (Sandbox Code Playgroud)