我正在从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”,因为它不存在或您没有权限。
消息11529,级别16,状态1,过程sp_describe_first_result_set,行1 无法确定元数据,因为每个代码路径均会导致错误;因此,请执行以下操作:请参阅先前的错误。
消息4902,级别16,状态1,过程sp_describe_first_result_set,行1 找不到对象“ #MyTempTable”,因为它不存在或您没有权限。
dbo.MyTable并且#MyTempTable不是真实姓名。
dbo.MyTable
#MyTempTable
是什么导致此错误?任何帮助,将不胜感激。
谢谢
从SQL Server 2012开始,您需要使用WITH RESULT SETS来显式描述结果集:
WITH RESULT SETS
EXEC('exec [MyDatabase].[dbo].[StoredProcedure] WITH RESULT SETS (( val SMALLINT));')