Я пытаюсь привести данные из хранимой процедуры CTE. Теперь, поскольку моя хранимая процедура использует OPEN EXEC, я обнаружил, что единственным способом работы является использование OPENROWSET. Так что мой предназначен код выглядит следующим образом:метаданные не определены исключение при использовании OPENROWSET
;with xyz AS
(
select a.*
from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;',
'EXEC [dbo].[usp_GetPayroll]
@StartDate = "1/1/2016",
@EndDate = "4/1/2016",
@OrganizationID = 183,
AS a
)
select * from xyz
Так что, когда я пытаюсь сделать эту вещь, я получаю ниже ошибок
Msg 11512, Level 16, State 1, Procedure sp_describe_first_result_set, Line 1
The metadata could not be determined because the statement 'WITH EnrollmentChanges AS
(
Я сделал некоторые исследования и обнаружил, что при использовании OPENROWSET, это существа вернуть метаданные только первой строки. я прочитал кое-что о настройке FMTONLY, но он не работает знает кто-либо хак вокруг этого, который работает
FYI: Ниже решение не будет работать, потому что в этом случае я буду иметь зависимость от моей хранимой процедуры. Я не хочу редактировать этот скрипт всякий раз, когда происходит смена SP. How to get results of stored procedure #1 into a temporary table in stored procedure #2