【问题标题】:Trying to update an SQL table from within Power BI尝试从 Power BI 中更新 SQL 表
【发布时间】:2021-06-11 01:50:35
【问题描述】:

我正在尝试从 Power BI 中更新 SQL 表。我在我工作的公司周围有许多自动报告,我的目标是让他们在查看它们时进行报告,以便我知道是否有一个没有正确更新。我可以用我的自定义应用程序做到这一点,但还不能用于 power bi。

我编写了一个简单的脚本,并且能够在查询编辑器中运行它,它没有返回任何错误并成功更新了相关表:

update [ReportStatus] set
    [ViewedUTC] = GetUTCDate()
output inserted.[ViewedUTC] [Output] 
where [Name] = 'ServerMonitor'

当我单击“关闭并应用”时,我收到错误消息,指出我不能在不是直接源的 select 语句(这不是 select 语句)中使用嵌套的 update 语句(尽管这不是嵌套的)插入语句的行数(这不是插入语句,它是行的直接来源。

我已经对此进行了广泛的 google 搜索,而其他人也有相同的错误消息,但我无法找到尝试更新并成功更新的错误消息。任何帮助将不胜感激。

谢谢! 莱克森

【问题讨论】:

    标签: sql-update powerbi


    【解决方案1】:

    PBI 是一种业务分析工具,因此它不允许您向数据库添加值,您只能以不同的方式提取和分析您的信息,它是一个业务智能程序,因此不是用于输入而是用于数据分析。

    【讨论】:

    • 我知道这是他们的业务答案,但是代码可以在编辑器中成功运行并且错误消息暗示在适当的情况下可以进行更新、插入、合并和删除这一事实,借给一些希望。
    【解决方案2】:

    这是一个嵌套更新,因为 Power BI 会像这样编写查询:

    select * from (update [ReportStatus] set [ViewedUTC] = GetUTCDate() ...) SourceQuery
    

    这样做是因为它需要在运行时添加连接和条件。显然上面的查询是无效的。

    要获取有关报告使用情况的信息,请查看报告的指标(转到工作区并单击报告或仪表板旁边的圆点图标):

    更多信息请阅读Monitor usage metrics for Power BI dashboards and reports 文章。也可以看看Track user activities in Power BI

    一般来说,像这样更新数据库内容并不是一个好主意。在最好的情况下,报告是只读操作(例如,您可以将其卸载到辅助只读副本)。它也不适用于导入和实时连接。

    【讨论】:

    • 谢谢。这为幕后发生的事情增加了很多背景。
    【解决方案3】:

    请参阅here 以获取 Microsoft 人员的回复。

    能否在 Power BI 或 Excel 中使用 Power Query 将数据写入数据源?

    简短的回答:

    长答案:

    从技术上讲,可以使用 Power Query(在 Power BI 或 Excel 中)将数据写入数据源;例如,这是我写的old post,展示了如何运行 UPDATE 语句来更新 SQL Server 中表中的数据。但是,由于 Power Query 引擎在执行查询时可能会多次评估一个值或语句,因此使用它来尝试创建、插入、更新、删除或以其他方式更改数据源中的数据是不安全或不支持的 -它应该只用于读取数据。您可能会看到 M 函数参考中列出的一些函数另有建议,但它们也不被支持,而且可能根本不起作用。

    【讨论】:

    • 我看到了。我无法使用他们在其中列出的技术,但很高兴知道其他人正在尝试解决同样的问题。
    • 这是一篇很老的帖子,所以他们可能已经改变了不受支持和不鼓励的做法的工作方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多