如何在 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

Microsoft PowerBI:无法加载安全库:krb5_64.dll

powerbi

使用Microsoft Power BI进行基本的数据分析

powerbi工具都有哪些

powerbi筛选反色设置