如何在 Microsoft PowerBI 中使用 SQL Server 存储过程?
Posted
技术标签:
【中文标题】如何在 Microsoft PowerBI 中使用 SQL Server 存储过程?【英文标题】:How to use SQL Server stored procedures in Microsoft PowerBI? 【发布时间】:2016-10-02 01:09:53 【问题描述】:我想从我的 SQL Server 表中生成报告。
我已经创建了一些存储过程,我想用它们来生成报告。
我还没有找到方法。
仅通过重写查询。
谢谢:)
【问题讨论】:
查看community.powerbi.com/t5/Desktop/… 【参考方案1】:在 Power BI 中执行你的 SP-->
1.在 SQL Server 中右键单击您的 SP 并选择执行。您的代码被执行,并打开一个负责执行的新查询窗口。复制该查询。
2.在 Power BI 查询编辑器中,选择新建源-->SQL Server。给出服务器和数据库后,在同一窗口中单击“高级选项”,将查询粘贴到打开的“SQL 语句”中。 选中“使用完整层次结构导航”并单击“确定”。
3.您只会看到您在 SP 中传递的参数的数据。
-
应用这些更改后,您将在 Power BI Desktop 中看到此数据集,您可以从中创建报表。
注意:这适用于“导入查询”选项。
希望这对你有用,就像对我一样,干杯!
【讨论】:
这个答案仍在展示如何使用存储过程——它粘贴在运行存储过程的“执行”语句中,而不是存储存储过程的内容。 这不能将动态变量传递给过程,但至少这个答案是迄今为止在网上找到的最好的答案【参考方案2】:您可以使用 openquery。以下语法适用于 Power BI Desktop 中的导入数据和直接查询方法。
SELECT *
FROM OPENQUERY ([server name],
'EXEC dbname.dbo.spname @parametername = ''R1''');
【讨论】:
嘿 niraj,我在使用 OPENQUERY 执行时不断收到错误消息。 “Microsoft SQL:此版本的 SQL Server 不支持‘OPENQUERY’行集提供程序。” 你使用的是哪个版本的sql server 现在是 2021 年,Azure SQL Server 仍然不支持它。有任何想法吗?我收到与@AsafSavich 相同的错误 我在尝试 DirectQuery Azure SQL 时也收到此错误,“Microsoft SQL:此版本的 SQL Server 不支持‘OPENQUERY’行集提供程序。”【参考方案3】:在Get Data -> SQL Server
对话框中展开Advanced options
,并编写一条SQL 语句来执行您的存储过程,例如:
EXEC [dbo].[usp_NameOfYourStoredProcedure]
【讨论】:
在应用更改时出现以下错误:/!\ "Query name" Microsoft SQL:关键字“EXEC”附近的语法不正确。 ')' 附近的语法不正确。有什么办法可以解决这个问题? 这就是我最终要做的,它适用于 Azure SQL。我不得不切换到导入模式。这些文档帮助我确保我的用例在导入模式下得到充分支持:直接查询与导入 community.powerbi.com/t5/Desktop/direct-query-vs-import/m-p/… 和配置导入计划缓存 docs.microsoft.com/en-us/power-bi/connect-data/…【参考方案4】:首先,我认为最好指出 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/
【讨论】:
我只想指出,在 SQL 中编辑大型存储过程比尝试修改 Power BI 对查询所做的操作要容易得多,这看起来非常荒谬。【参考方案5】:“嗨,
-
在 Excel 工作簿中,打开“Power Query”选项卡。
然后选择“From Database”下拉按钮并选择“From SQL Server Database”
填写服务器和数据库文本框并单击确定
在导航器窗口中,双击所需的表
在查询编辑器窗口中,单击要显示的列。
点击关闭并选择“加载”按钮
连接到存储过程。
创建另一个电源窗口并填写服务器和数据库文本框。
在 SQL 语句文本框中,输入“EXECUTE Procedure_Name”
单击关闭并加载按钮
"
【讨论】:
Excel 与 Power BI 有什么关系? Power BI 是 an extension of the work started in PowerPivot and PowerView.以上是关于如何在 Microsoft PowerBI 中使用 SQL Server 存储过程?的主要内容,如果未能解决你的问题,请参考以下文章
找不到方法:'无效 Microsoft.PowerBI.Api.V1.PowerBIClient..ctor(Microsoft.Rest.ServiceClientCredentials, Syst