无法确定元数据,因为每个代码路径都会导致错误; 查看其中一些错误

Val*_*l K 3 sql metadata openrowset sql-server-2014

我正在从SQL Server 2005迁移到SQL Server 2014,其中一个查询在SQL Server 2014中停止工作:

select * 
from openrowset ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;',' exec [MyDatabase].[dbo].[MyTable]')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

消息11529,级别16,状态1,过程sp_describe_first_result_set,第1行
无法确定元数据,因为每个代码路径都会导致错误; 查看其中一些错误.

消息4902,级别16,状态1,过程sp_describe_first_result_set,第1行
无法找到对象"#MyTempTable",因为它不存在或您没有权限.

dbo.MyTable#MyTempTable不是真实姓名.

什么可能导致此错误?任何帮助,将不胜感激.

谢谢

Ale*_*lex 6

从SQL Server 2012开始,您需要使用WITH RESULT SETS显式描述结果集:

EXEC('exec [MyDatabase].[dbo].[StoredProcedure] WITH RESULT SETS (( val SMALLINT));')
Run Code Online (Sandbox Code Playgroud)