小编典典

由于每个代码路径都会导致错误,因此无法确定元数据。请参阅先前的错误,以了解其中一些错误

sql

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

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

我收到以下错误消息:

消息11529,级别16,状态1,过程sp_describe_first_result_set,行1
无法确定元数据,因为每个代码路径均会导致错误;因此,请执行以下操作:请参阅先前的错误。

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

dbo.MyTable并且#MyTempTable不是真实姓名。

是什么导致此错误?任何帮助,将不胜感激。

谢谢


阅读 374

收藏
2021-04-28

共1个答案

小编典典

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

EXEC('exec [MyDatabase].[dbo].[StoredProcedure] WITH RESULT SETS (( val SMALLINT));')
2021-04-28