sp_stored_procedures (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_stored_procedures [ [ @sp_name = ] 'name' ] 
    [ , [ @sp_owner = ] 'schema'] 
    [ , [ @sp_qualifier = ] 'qualifier' ]
    [ , [@fUsePattern = ] 'fUsePattern' ]

Аргументы

  • [ @sp_name = ] 'name'
    Имя процедуры, возвращающей сведения о каталоге. Аргумент name имеет тип nvarchar(390) и значение по умолчанию NULL. Поиск совпадений по шаблону поддерживается.

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

    Если текущая схема содержит процедуру с указанным именем, в SQL Server возвращается эта процедура. Если не указано уточненное имя хранимой процедуры, компонент Database Engine производит поиск процедуры в следующем порядке:

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

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

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

  • [ @qualifier = ] 'qualifier'
    Имя квалификатора процедуры. Параметр qualifier имеет тип sysname и значение по умолчанию NULL. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (qualifier**.schema.**name). В SQL Server аргумент qualifier представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, в которой находится таблица.

  • [ @fUsePattern = ] 'fUsePattern'
    Определяет, следует ли рассматривать символы подчеркивания (_), процента (%) и скобки ([ или ]) в качестве символов-шаблонов. Аргумент fUsePattern имеет тип bit и значение по умолчанию 1.

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

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

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

Нет

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

Имя столбца

Тип данных

Описание

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-92 (символы-шаблоны «%» и «_»).

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

Хранимая процедура sp_stored_procedures эквивалентна ODBC-функции SQLProcedures. Возвращенные результаты сортируются по столбцам PROCEDURE_QUALIFIER, PROCEDURE_OWNER и PROCEDURE_NAME.

Разрешения

Необходимо разрешение SELECT для схемы.

Примеры

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

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

USE AdventureWorks2008R2;
GO
EXECUTE sp_stored_procedures;

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

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

USE AdventureWorks2008R2;
GO
EXECUTE sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2008R2', 1;