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


sp_stored_procedures (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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 имеет тип 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 (символы-шаблоны «%» и «_»).

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

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

Разрешения

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

Примеры

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

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

USE AdventureWorks2012;
GO
EXEC sp_stored_procedures;

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

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

USE AdventureWorks2012;
GO
sp_stored_procedures N'uspLogError', N'dbo', N'AdventureWorks2012', 1;

См. также

Справочник

Хранимые процедуры каталога (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)