2016-01-21 9 views
5

SQL Management Studioで直接実行されたときに正常に動作するSQLスクリプトを作成しました。ただし、Power BIにソースとして入力すると、構文が正しくないことが報告されます。Power BIで実行されたSQLの無効な構文

これはクエリです:

  EXEC "dbo"."p_get_bank_balance" '2' 

しかし、構文が明らかに間違っていますか?画像を参照してください:

enter image description here

をすべてのヘルプははるかに高く評価されます。二重引用符が削除され

EDIT ***

:私は電源バイサイト上でオンライン前に同じ問題を時間を見つけ

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文を直接使用してください。 DirectQueryモードで

+1

ようこそスタックオーバーフロー!このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参照のためのリンクを提供する方が良いでしょう。リンクされたページが変更された場合、リンクのみの回答は無効になります。この記事を見てください:[私は良い答えを書くにはどうすればいいですか](http://stackoverflow.com/help/how-to-answer)。 – ByteHamster

0

、PowerBIは自動的にそうのようなクエリをラップ:select * from ([your query])、およびストアドプロシージャすなわち

select * from (exec dbo.getData) 

とSSMSでこれをしようとすると、あなたは上記を参照エラーが発生します。

ソリューションは、あなたがすなわち、ローカルサーバーにOPENQUERY呼び出しでストアドプロシージャの呼び出しを配置する必要がある

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

前提条件は次のようになります。

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

でOPENQUERY内のローカルサーバーへのアクセスを有効にし、すべての呼び出しがmasterデータベースにデフォルト設定されているので、OPENQUERYで3部表記を使用していることを確認してください。