Как получить входные и выходные параметры для всех хранимых процедур в T-SQL

#sql-server #tsql #stored-procedures

#sql-server #tsql #хранимые процедуры

Вопрос:

Я хочу повторно просмотреть с помощью хранимой процедуры все хранимые процедуры в моей базе данных.

Я создал новую хранимую процедуру с помощью этого запроса:

 select SPECIFIC_NAME 
from information_schema.routines 
where routine_type = 'PROCEDURE'
  

Теперь я также хочу знать входные и выходные параметры, которые есть у этих хранимых процедур, но я не нахожу, как я могу найти эту информацию

Ответ №1:

Вы можете использовать этот запрос для получения всех параметров в хранимых процедурах

 SELECT 
    SCHEMA_NAME(SCHEMA_ID) AS [Schema], 
    SO.name AS [Object Name],
    SO.Type_Desc AS [Object Type (UDF/SP)],
    P.parameter_id AS [Parameter ID],
    P.name AS [Parameter Name],
    TYPE_NAME(P.user_type_id) AS [Parameter Datatype],
    P.max_length AS [ParameterMaxBytes],
    P.is_output AS [IsOutPutParameter]
FROM 
    sys.objects AS SO
INNER JOIN 
    sys.parameters AS P ON SO.OBJECT_ID = P.OBJECT_ID
WHERE 
    SO.OBJECT_ID IN (SELECT OBJECT_ID 
                     FROM sys.objects
                     WHERE TYPE IN ('P', 'FN'))
ORDER BY 
    [Schema], SO.name, P.parameter_id