Как получить хранимую процедуру возвращаемых столбцов, не зная входных параметров?

Я хочу виртуально выполнить хранимую процедуру и получить возвращенные столбцы. я использую fmtonly как ниже:

set fmtonly on
exec spName null
set fmtonly off

но использование fmtonly приводит к запуску всех строк кода, и результатом этой работы является ОШИБКА. Есть ли решение для этой работы?

1 ответ

Вам нужно использовать sp_describe_first_result_set который является новым для SQL Server 2012. Обратите внимание, что для этого необходимо указать входные параметры (по крайней мере, типы).

В разработке T-SQL ожидается, что вы будете знать, какие процедуры вызываются и каков ожидаемый набор результатов. До SQL Server 2012 было очень мало поддержки для динамического, времени выполнения, обнаружения вывода процедуры и требуемых параметров. Эта новая процедура, наряду с другими, как sp_describe_undeclared_parameters может использоваться для создания инструментов, которые должны изучить доступную поверхность API программирования. Сам факт того, что они были добавлены к 2012 году, должен указывать на то, что эквивалент не может быть должным образом обработан до 2012 года. Такие решения, как серверы с обратной связью, имеют много проблем, в первую очередь потому, что они на самом деле выполняют код с потенциальными катастрофическими последствиями.

Другие вопросы по тегам