Power BI中设置带增量日期的存储过程报错求助
Power BI增量加载SQL存储过程问题解决
错误原因分析
你遇到的Incorrect syntax near '='错误主要源于两点:
- 自定义函数命名为
Source,但后续调用时误用了未定义的#"Fnc Query",导致函数调用失败,生成的SQL语句格式混乱 - 用
Table.FromRecords包装查询字符串的方式冗余,反而容易引发拼接错误
修正后的Power Query代码
简化逻辑,正确调用自定义函数并生成合法的存储过程执行语句:
// 定义调用SQL存储过程的自定义函数 let ExecuteSP = (DateFrom as date, DateTo as date) => let DateFromStr = Date.ToText(DateFrom, "yyyy-MM-dd"), DateToStr = Date.ToText(DateTo, "yyyy-MM-dd"), Query = "EXEC ED_DS_TRANS_DETAIL01 @DateFrom = '" & DateFromStr & "', @DateTo = '" & DateToStr & "'", Source = Sql.Database("你的IP地址", "你的数据库名", [Query=Query, CreateNavigationProperties=false]) in Source in ExecuteSP // 调用函数获取昨日到今日的数据(可按需调整日期范围) let Today = Date.From(DateTime.LocalNow()), Yesterday = Date.AddDays(Today, -1), LoadedData = ExecuteSP(Yesterday, Today) in LoadedData
增量加载配置步骤
要实现每日自动追加数据不覆盖,还需在Power BI中完成以下配置:
- 将修正后的查询数据加载到模型
- 进入模型视图,选中目标表,在右侧属性面板找到增量刷新选项
- 启用增量刷新,设置刷新范围为“最近1天”,存档数据保留所有历史数据
- 确保表中存在可用于增量判断的日期字段(如交易明细表的交易日期),并将其设置为日期范围列
- 发布到Power BI服务后,设置每日刷新计划,即可自动追加当日新数据
额外注意事项
- 替换代码中的
你的IP地址和你的数据库名为实际信息 - 确保Power BI使用的账号拥有执行该存储过程的权限
- 测试时可手动修改
Yesterday和Today的日期,验证是否能正确获取指定范围的数据
内容的提问来源于stack exchange,提问作者Moeez
相关产品推荐
相关产品推荐

