Ответ 1
Вместо использования хранимой процедуры вы можете использовать следующие виды:
Select * From sys.procedures
Where [Type] = 'P'
или
Select * From Information_Schema.Routines
Я пытаюсь получить список хранимых процедур в t-sql. Я использую строку:
exec sys.sp_stored_procedures;
Я хотел бы отфильтровать результаты, хотя, поэтому я получаю только созданные пользователем хранимые процедуры. Я хотел бы отфильтровать sp_ *, dt_ *, fn_ *, xp_ * и все остальное, что является хранимой в системе процедурой и не интересует меня. Как я могу манипулировать возвращаемым набором результатов?
Использование Sql Server 2008 express.
Решено! Вот что я использовал:
SELECT name FROM sys.procedures
WHERE [type] = 'P'
AND name NOT LIKE 'sp_%'
AND name NOT LIKE 'dt_%'
ORDER BY name ASC;
Вместо использования хранимой процедуры вы можете использовать следующие виды:
Select * From sys.procedures
Where [Type] = 'P'
или
Select * From Information_Schema.Routines
Выберите элементы из sysobjects table и используйте предложение where type = 'P'
для хранимых процедур и фильтр на name
.
SELECT [Routine_Name]
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_TYPE] = 'PROCEDURE'