2016-03-11 5 views
3

Я мигрирующий из SQL Server 2005 на SQL Server 2014 и один из запросов перестали работать в SQL Server 2014:Метаданные не могут быть определены, потому что каждый путь кода приводит к ошибке; просмотреть предыдущие ошибки для некоторых из этих

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

Я получаю следующее сообщение об ошибке:

Msg 11529, уровень 16, состояние 1, процедура sp_describe_first_result_set, Строка 1
Метаданные не могут быть определены, поскольку каждый путь кода приводит к ошибке; см. предыдущие ошибки для некоторых из них.

Msg 4902, уровень 16, состояние 1, процедура sp_describe_first_result_set, линия 1
Не удается найти объект «#MyTempTable», потому что он не существует, или вы не имеют разрешений.

dbo.MyTable и #MyTempTable не настоящие имена.

Что может вызвать эту ошибку? Любая помощь будет оценена по достоинству.

Благодаря

ответ

4

С SQL Server 2012 года, вам нужно использовать WITH RESULT SETS явно описать результирующий набор:

EXEC('exec [MyDatabase].[dbo].[MyTable] WITH RESULT SETS ((val SMALLINT));')