如何在Microsoft PowerBI中使用SQL Server存储过程?

19

我想从我的SQL Server表中生成报告。

我有一些已经制作好的存储过程,希望能够使用它们生成报告。

但我还没有找到这样的方法。

只能通过重写查询来实现。

谢谢 :)


请查看以下链接:http://community.powerbi.com/t5/Desktop/Use-SQL-Store-Procedure-in-Power-BI/td-p/20269 - P.Salmon
5个回答

13

在Power BI中执行您的存储过程:

1.在SQL Server中右键单击您的存储过程,选择“执行”。系统会执行您的代码并打开一个新的查询窗口。复制该查询。

2.在Power BI查询编辑器中,选择“新建数据源”-->“SQL Server”。输入服务器和数据库名称,在同一窗口中单击“高级选项”,将查询粘贴到弹出的“SQL语句”文本框中。勾选“使用完整层次结构导航”,然后单击“确定”。

3.您将只看到传递给存储过程参数的数据。

  1. 应用这些更改后,您可以在Power BI Desktop中查看此数据集,并创建报表。

注意:此方法仅适用于“导入查询”选项。

希望这对您有所帮助,祝您好运!


1
这个回答仍然展示了如何使用存储过程- 它粘贴了'exec'语句来运行存储过程,而不是存储过程的内容。 - Rich
2
这个过程不能传递动态变量,但至少这个答案是目前在网络上找到的最好的答案。 - Wouter Vanherck

11

您可以使用openquery。以下语法可在Power BI Desktop中的导入数据和直接查询方法中使用。

您可以使用openquery。以下语法可在Power BI Desktop中的导入数据和直接查询方法中使用。

SELECT *
FROM OPENQUERY ([server name],
'EXEC dbname.dbo.spname @parametername = ''R1''');

输入图片说明


1
嘿,尼拉杰,当我使用OPENQUERY执行时,我一直收到一个错误。"Microsoft SQL:此版本的SQL Server不支持'OPENQUERY'行集提供程序。" - AsafSavich
1
你正在使用哪个版本的SQL Server? - Niraj
1
这是2021年了,但在Azure SQL服务器中仍未得到支持。有任何想法吗?我收到了与@AsafSavich相同的错误。 - Hanyu Wang
当我尝试使用DirectQuery Azure SQL时,我也会遇到这个错误:“Microsoft SQL:此版本的SQL Server不支持'OPENQUERY'行集提供程序。” - Lauren Oldja

5

在“获取数据 -> SQL Server”对话框中展开“高级选项”,并编写用于执行存储过程的SQL语句,例如:

EXEC [dbo].[usp_NameOfYourStoredProcedure]

execute stored procedure in Power BI


3
在应用更改时出现以下错误: /!\ “查询名称” Microsoft SQL:关键字'EXEC'附近的语法不正确。 附近的语法不正确')'。有没有什么方法可以解决这个问题? - DeFlanko
这是我最终采用的方法,在Azure SQL上有效。我不得不切换到导入模式。这些文档帮助我确保我的使用场景在导入模式下得到了充分支持:直接查询 vs 导入 https://community.powerbi.com/t5/Desktop/direct-query-vs-import/m-p/112212 和配置导入计划缓存https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-scheduled-refresh - Lauren Oldja

2
首先,我认为最好明确一点,Power BI并不是Reporting Services,它期望被给予现有的表格数据或视图,然后在其自身环境中建模,然后创建仪表板。

如果您可以让Power BI执行存储过程的工作。一旦您在Power BI中定义了数据模型,它就可以重复使用。

Power BI网站上有一个很好的入门课程:

https://powerbi.microsoft.com/en-us/guided-learning/powerbi-learning-2-1-intro-modeling-data/


8
我想指出,与试图修改 Power BI 对查询所做的看起来非常荒谬的操作相比,在 SQL 中编辑大型存储过程要容易得多。 - Lord Helmet

1

"你好,

  1. 在Excel工作簿中,打开“Power Query”选项卡。
  2. 然后选择“来自数据库”下拉按钮并选择“来自SQL Server数据库”
  3. 填写服务器和数据库文本框,然后单击“确定”
  4. 在导航窗口中,双击所需的表格
  5. 在查询编辑器窗口中,单击要显示的列。
  6. 单击关闭并选择“加载”按钮
  7. 连接到存储过程。
  8. 创建另一个Power窗口并填写服务器和数据库文本框。
  9. 在SQL语句文本框中键入“EXECUTE Procedure_Name”
  10. 单击“关闭并加载”按钮 "
"

1
Excel和Power BI有什么关系? - David Ferenczy Rogožan
Power BI是在PowerPivot和PowerView工作的基础上延伸出来的。 - Tawnos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接