【问题标题】:Replication a view from SQL Server (on-prem) to Azure SQL Server将视图从 SQL Server(本地)复制到 Azure SQL Server
【发布时间】:2020-03-22 11:19:54
【问题描述】:

我有一个本地 SQL Server,我想从 Azure WEB APP 访问数据,因此找到的最佳解决方案是在本地服务器上创建一个视图,并仅在该视图上设置到 Azure SQL 的跨国复制。

我已设置复制,但我不断收到此错误:

此版本的 SQL Server 不支持在“..”中引用数据库和/或服务器名称

我认为问题在于视图被复制为命令(CREATE VIEW ...)而不是原始数据。

SQL Server 是发布者,没有办法暴露任何内部网络端口。

有没有办法将视图复制为原始数据而不是索引?

【问题讨论】:

  • 错误是因为您的视图引用了这样的数据库:FROM Database.dbo.Table。删除数据库部分。希望它只引用当前数据库。如果没有,它就行不通。视图中有多少数据?这些数据需要多长时间才能显示给您的应用?
  • 如下所述,复制视图不起作用。您需要复制基表并从视图定义中删除数据库名称

标签: sql sql-server azure


【解决方案1】:

跨国复制复制视图,但仅复制视图定义。您必须复制基表,或将视图设为Indexed View 并将索引视图复制为表。在sp_addarticle 的文档中,这称为@type = 'indexed view logbased'。或者网上有很多关于这个的文章。

【讨论】:

    【解决方案2】:

    通过创建一个新的 SSIS 作业来处理该合并并每小时运行一次来​​解决此问题。 我不需要将数据保存在我的 web 应用程序中,所以这对我有用。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2021-07-03
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 2013-01-08
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多