Поделиться через


sp_stored_procedures (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает список всех хранимых процедур в текущем окружении.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_stored_procedures
    [ [ @sp_name = ] N'sp_name' ]
    [ , [ @sp_owner = ] N'sp_owner' ]
    [ , [ @sp_qualifier = ] N'sp_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Аргументы

[ @sp_name = ] N'sp_name'

Имя процедуры, используемой для возврата сведений о каталоге. @sp_name — nvarchar(390) с значением по умолчаниюNULL. Поиск совпадений по шаблону поддерживается.

[ @sp_owner = ] N'sp_owner'

Имя схемы, которой принадлежит процедура. @sp_owner — nvarchar(384) с значением по умолчаниюNULL. Поиск совпадений по шаблону поддерживается. Если @sp_owner не задано, применяются правила видимости процедуры по умолчанию базовой системы управления базами данных (СУБД).

В SQL Server, если текущая схема содержит процедуру с указанным именем, возвращается эта процедура. Если указана неквалифицированная хранимая процедура, ядро СУБД выполняет поиск процедуры в следующем порядке:

  • Схема sys текущей базы данных.

  • схема участника по умолчанию, если она выполняется в пакете или в динамическом SQL; или, если неуточненное имя процедуры появляется внутри определения другой процедуры, далее происходит поиск по схеме, содержащей эту процедуру.

  • Схема dbo в текущей базе данных.

[ @sp_qualifier = ] N'sp_qualifier'

Имя квалификатора процедуры. @sp_qualifier имеет имя sysname с значением по умолчаниюNULL. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц в форме <qualifier>.<schema>.<name>. В SQL Server @sp_qualifier представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, в которой находится таблица.

[ @fUsePattern = ] fUsePattern

Определяет, интерпретируются ли символы подчеркивания (_), процент (%) или квадратные скобки ([ и ]) как подстановочные знаки. @fUsePattern бит с значением по умолчанию1.

  • 0 = сопоставление шаблонов отключено.
  • 1 = сопоставление шаблонов включено.

Значения кода возврата

Нет.

Результирующий набор

Имя столбца Тип данных Description
PROCEDURE_QUALIFIER sysname Имя квалификатора процедуры. Этот столбец может быть NULL.
PROCEDURE_OWNER sysname Имя владельца процедуры. Этот столбец всегда возвращает значение .
PROCEDURE_NAME nvarchar(134) Имя процедуры. Этот столбец всегда возвращает значение .
NUM_INPUT_PARAMS int Зарезервировано для последующего использования.
NUM_OUTPUT_PARAMS int Зарезервировано для последующего использования.
NUM_RESULT_SETS int Зарезервировано для последующего использования.
REMARKS varchar(254) Описание процедуры. SQL Server не возвращает значение для этого столбца.
PROCEDURE_TYPE smallint Тип процедуры. SQL Server всегда возвращает значение 2.0. Это значение может быть одним из следующих параметров:

0 = SQL_PT_UNKNOWN
1 = SQL_PT_PROCEDURE
2 = SQL_PT_FUNCTION

Замечания

Для максимальной совместимости клиент шлюза должен предполагать сопоставление только стандартных шаблонов SQL, а именно символы подстановочного знака () и% символов подчеркивания (_).

Сведения о разрешении на выполнение доступа к определенной хранимой процедуре для текущего пользователя не обязательно проверяются; Поэтому доступ не гарантируется. Используется только три части именования. Это означает, что возвращаются только локальные хранимые процедуры, а не удаленные хранимые процедуры (которые требуют именования четырех частей), возвращаются при их выполнении в SQL Server. Если атрибут ACCESSIBLE_SPROC сервера имеет значение Y в результирующем наборе sp_server_info, возвращаются только хранимые процедуры, которые могут выполняться текущим пользователем.

sp_stored_procedures эквивалентен SQLProcedures в ODBC. Возвращаемые результаты упорядочены PROCEDURE_QUALIFIERпо , PROCEDURE_OWNERи PROCEDURE_NAME.

Разрешения

Требуется SELECT разрешение на схему.

Примеры

А. Возврат всех хранимых процедур в текущей базе данных

В следующем примере возвращаются все хранимые процедуры в базе данных AdventureWorks2022.

USE AdventureWorks2022;
GO
EXEC sp_stored_procedures;

B. Возврат одной хранимой процедуры

В следующем примере возвращается результирующий набор для хранимой процедуры uspLogError.

USE AdventureWorks2022;
GO

sp_stored_procedures N'uspLogError',
    N'dbo',
    N'AdventureWorks2022',
    1;