2016-01-21 44 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數據庫

相關問題