如何更新源表中的表格数据

Posted

技术标签:

【中文标题】如何更新源表中的表格数据【英文标题】:how to update tabular data from source tables 【发布时间】:2019-02-15 11:39:38 【问题描述】:

我有一个简单的测试设置:

具有一个数据库和一个表的 SQL Server (2017) SQL Server 分析服务器(2017,兼容级别 1400) 我在 Visual Studio 中创建了一个简单的表格模型,其中包含一个数据源(一个表的数据库)和一个表

这是我的电源查询:

let
  Source = #"SQL/MYCOMPUTER\SQLDEV;SampleDatabase",
  dbo_testTable = Source[Schema="dbo",Item="testTable"][Data]
in
  dbo_testTable

我已将此表格模型部署到我的 SSAS 实例...

现在我的问题是:如果我的 SQL Server 中的表已更新(添加记录),我如何才能看到这些更新反映在表格模型中?我是否必须以某种方式重新运行表格模型?

我在表格模型表上尝试了 SSMS 中的“进程表”,但它没有获取新记录...

【问题讨论】:

【参考方案1】:

处理表会处理您选择的任何维度或事实表,这只会从该表使用的数据库对象中读取数据。实际执行的处理取决于您使用的处理类型。至于您发布的答案中的问题,整个表格模型上的完整处理将从已部署的模型中删除所有数据,然后重新加载所有内容并处理层次结构和度量,所以是的,来自基础表的新数据现在将在您使用此选项处理它之后,在其中的所有表的模型中。有多种处理类型可以在数据库、表或分区级别完成。您可以通过 Microsoft reference 查看有关这些内容的更多详细信息。

【讨论】:

为什么要删除你的答案here 这是正确的答案。你检查过 OP cmets 吗? @Hadi 感谢您了解这一点。我一定是无意中删除了答案,当时没有意识到。我现在取消删除答案。【参考方案2】:

我发现在 SSAS 实例中的数据库级别上,有一个选项“进程数据库”,其中有一个选项“进程完整”,它确实更新了所有基础表。 但也许有更好的方法来做到这一点?

【讨论】:

以上是关于如何更新源表中的表格数据的主要内容,如果未能解决你的问题,请参考以下文章

根据另一个表中的值插入和/或更新记录

oracle merge into用法

KETTLE如何实现实时的增量更新

SQLServer2008中的Merge

当新记录插入或更新数据库表中的现有记录时,如何 Hazelcast jet JDBC 继续源获取数据?

如何在sequelize中从目标表中查找源表的数据?