Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL报告在Power BI中运行时语法无效_Sql_Sql Server_Powerbi - Fatal编程技术网

SQL报告在Power BI中运行时语法无效

SQL报告在Power BI中运行时语法无效,sql,sql-server,powerbi,Sql,Sql Server,Powerbi,我编写了一个SQL脚本,直接在SQL Management Studio中执行时运行良好。但是,当将其作为源输入Power BI时,它会报告其语法不正确 以下是查询: EXEC "dbo"."p_get_bank_balance" '2' 但是,语法显然不正确?见图: 非常感谢您的帮助 编辑*** 删除双引号时(根据Tab Alleman的建议): 我很久以前在power bi网站上在线发现了相同的问题: 您必须使用DirectQuery模式,在该模式下,您无法使用

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

以下是查询:

            EXEC "dbo"."p_get_bank_balance" '2'
但是,语法显然不正确?见图:

非常感谢您的帮助

编辑***

删除双引号时(根据Tab Alleman的建议):


我很久以前在power bi网站上在线发现了相同的问题:

您必须使用DirectQuery模式,在该模式下,您无法使用存储过程连接到数据。请使用导入模式重试,或直接使用SELECT语句


在DirectQuery模式下,PowerBI会自动包装您的查询,如下所示:
select*from([your query])
,如果您尝试在SSMS中使用存储过程(即

select * from (exec dbo.getData)
您得到了上面看到的错误

解决方案是,您必须将存储过程调用放在对本地服务器的OPENQUERY调用中,即

select * from OPENQUERY(localServer, 'DatabaseName.dbo.getData')
先决条件是:使用启用OPENQUERY中的本地服务器访问

exec sp_serveroption @server = 'YourServerName' 
   ,@optname = 'DATA ACCESS' 
   ,@optvalue = 'TRUE' 
然后确保在OPENQUERY中使用三部分表示法,因为所有调用都默认为
master
database

,并且使用“导入”数据连接模式存储过程工作 在“直接查询”数据连接模式下,查询语法必须如下所示:

声明@sqlCommand varchar(100)='dbo.p_get_bank_balance' 声明@p1int=2

exec@sqlCommand@p1=@p1


Remerber:最多一个直接查询的数据源连接。如果要调用多个SP,则只有一个SP处于直接查询模式,其他SP处于导入模式

尝试使用导入而不是直接查询。它可能显示错误,因为您在其中使用临时表。使用子查询创建查询并删除临时表,然后重试。或者您可以使用as Import而不是直接查询它会工作。

我怀疑它是引用的标识符。试试[dbo]。[p_get_bank_balance]嗨@TabAlleman,我试过你的建议,我仍然得到相同的错误。说清楚一点,你删除了架构和表名周围的引号?你能发布一个截图吗?嗨@TabAlleman,我已经把截图添加到问题中了。这就是我会尝试的。我没有主意了,这一定是一个权力双性恋怪癖,我没有权力双性恋玩。我在你的问题中添加了Power-BI标签,希望能吸引该工具的专家。您可以尝试的另一件事是启动探查器跟踪,并查看在运行该行时Power BI尝试执行的代码。欢迎使用堆栈溢出!虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。请看这篇文章:。