You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power Automate中用SQL语句更新Dataverse表的计算列?

解决方案

方法1:直接用Dataverse计算列(最省心)

  • 不用折腾Flow或SQL,直接在Dataverse表的设计界面把那6列设为计算列,用Dataverse自带的公式语言配置和你SQL逻辑对应的计算规则。只要那9列的数据有变动,计算列会自动同步更新,完全不用额外维护Flow。
  • 操作步骤:
    1. 打开Power Platform Maker Portal,找到你的Dataverse表
    2. 点击「新建列」,类型选择「计算」
    3. 在公式编辑器里编写计算逻辑(比如ColumnA + ColumnB,或者用IF、LOOKUP等函数匹配你的SQL逻辑)
    4. 保存后,现有行和新增行都会自动算出对应值

方法2:在Power Automate里执行Dataverse SQL语句

如果你一定要用现成的SQL更新语句,Power Automate有专门的Dataverse SQL执行动作:

  • 在Flow中添加「执行SQL查询(Dataverse)」动作(别选错成普通SQL Server的)
  • 把你的UPDATE语句填入「查询」框,示例:
    UPDATE [你的表逻辑名称]
    SET ColumnX = ColumnA * ColumnB,
        ColumnY = ColumnC + ColumnD
    WHERE [CreatedOn] >= addhours(utcnow(), -1) -- 建议加过滤条件,比如只更新1小时内导入的行,避免全表更新
    
  • 注意:Flow的连接账号需要有Dataverse的表编辑权限,同时要确保你的环境开启了允许执行SQL查询的设置
  • 一定要加过滤条件,不然全表更新会影响性能,甚至触发Dataverse的限流

方法3:Power Automate循环批量更新行

如果不想碰SQL,也可以用「列出行」+「更新行」的组合搞定:

  1. 添加「列出行(Dataverse)」动作,设置过滤条件(比如只筛选那9列已填充、6列为空的行)
  2. 用「应用到每一个」循环遍历查询到的每行数据
  3. 在循环里加「更新行」动作,用表达式计算6列的值(比如mul(items('应用到每一个')?['columnA'], items('应用到每一个')?['columnB']))
  4. 把计算结果对应到更新行的对应字段里
  • 数据量大的话,建议用「批量更新行」动作(需开启Dataverse批量操作功能),比循环单条更新效率高很多

注意点

  • 用SQL时要注意用Dataverse表的逻辑名称(不是显示名称),可以在表设计的「高级选项」里查看
  • 计算列如果搞不定复杂的跨表逻辑,再考虑用SQL或批量更新的方式
  • 不管用哪种方法,都建议先在测试环境验证后再推到生产环境

内容的提问来源于stack exchange,提问作者John11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:47:27