首页 > 解决方案 > 是否可以基于不同服务器中的表创建视图?

问题描述

我的客户有一个 azure service app MyServiceApp,它的数据库被称为MyCloudServer(它的数据来自一个 legacy MyPremiseServer)。

MyPremiseServer是位于我客户站点上的服务器,因为云的服务应用程序MyServiceApp无法访问它,他们MyCloudServer使用完全相同的方案创建了MyPremiseServer.

为了使MyCloudServer保存相同的数据MyPremiseServer,他们开发了一个定期 .net 服务,它MyCopyService只需将每个数据批量复制MyPremiseServer到进入对应的视图,其中有两个数据库:和(复制过程告诉应用服务停止使用,并在复制过程进行时开始使用,删除每个表中的旧数据,从对应表中批量复制它在最后告诉应用服务它可以再次开始使用而不是 )。MyCloudServerMyPremiseServerMyCloudServerMyDbMyDbMirrorMyDbMyDbMirrorMyPremiseServerMyDbMyDbMirror

复制整个过程每小时执行一次,这导致应用服务数据使用未完全更新的数据(从上一小时开始),并且复制过程花费了我很多精力来维护,所以我的问题是:是否MyCloudServer可以基于位于MyPremiseServer(不同服务器)中的视图创建视图?

我确定可以查询另一个数据库中的表,例如:

USE [DatabaseA]
CREATE VIEW [dbo].[MyView]
AS
SELECT        DatabaseB.dbo.Events.*
FROM            DatabaseB.dbo.Events
GO

标签: sql.netsql-serverazure-sql-database

解决方案


不能在 Azure SQL 中创建链接服务器。

您可以使用以下方法在本地服务器和 Azure SQL 之间同步数据:


推荐阅读