2016-01-21 115 views
5

我写了一个在SQL Management Studio中直接执行时运行良好的SQL脚本。但是,将其作为源输入Power BI时,会报告它的语法不正确。在Power BI中运行时SQL报告无效语法

这是查询:

  EXEC "dbo"."p_get_bank_balance" '2' 

但是,语法是不正确明显?见图片:

enter image description here

任何帮助深表感谢。

编辑***

当双引号被删除:

enter image description here

+2

我怀疑它是带引号的标识符。尝试[dbo]。[p_get_bank_balance] –

+0

嗨@TabAlleman,我试过你的建议,我仍然遇到同样的错误。 –

+0

要清楚,您从模式和表名称周围删除了引号?你可以张贴截图吗? –

回答

4

我发现很久以前同样的问题在线上双向电力网站:

http://community.powerbi.com/t5/Desktop/Use-SQL-Store-Procedure-in-Power-BI/td-p/20269

您必须使用DirectQuery模式,其中哟您无法使用存储过程连接到数据。再次使用导入模式尝试或直接使用SELECT语句。

+1

欢迎来到Stack Overflow!虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。看看这篇文章:[我如何写一个很好的答案](http://stackoverflow.com/help/how-to-answer)。 – ByteHamster

0

在DirectQuery模式下,PowerBI自动换行查询,像这样:select * from ([your query]),如果你有一个存储过程,即

select * from (exec dbo.getData) 

你得到你在上面看到的错误尝试此SSMS中。

解决的办法是你必须把你的存储过程调用在OPENQUERY调用本地服务器即

select * from OPENQUERY(localServer, 'DatabaseName.dbo.getData') 

先决条件是:能够在OPENQUERY本地服务器访问与

exec sp_serveroption @server = 'YourServerName' 
    ,@optname = 'DATA ACCESS' 
    ,@optvalue = 'TRUE' 

而且那么确保在OPENQUERY中使用三部分符号,因为所有呼叫都默认为master数据库