Como posso obter uma lista de todas stored procedures em meu servidor?
Escolha o banco de dados desejado e execute uma das consultas abaixo.
Opção recomendada — usando sys.objects:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
ORDER BY name;
Opção alternativa — usando a view específica sys.procedures:
SELECT name, create_date, modify_date
FROM sys.procedures
ORDER BY name;
Opção padrão ANSI (portável entre bancos de dados) — usando INFORMATION_SCHEMA:
SELECT ROUTINE_NAME, ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
ORDER BY ROUTINE_NAME;
Observações importantes:
- A antiga tabela
sysobjectsainda funciona no SQL Server atual apenas como view de compatibilidade, mas está oficialmente descontinuada — a Microsoft recomenda migrar parasys.objectsou as demais catalog views (sys.*). - As consultas acima retornam apenas as stored procedures criadas pelo usuário. Para incluir também as procedures internas do sistema, use
sys.system_objectsou remova o filtro por tipo emsys.all_objects. - Se quiser filtrar apenas procedures de um schema específico (por exemplo,
dbo), acrescente:
SELECT s.name AS schema_name, p.name AS procedure_name
FROM sys.procedures p
JOIN sys.schemas s ON p.schema_id = s.schema_id
WHERE s.name = 'dbo'
ORDER BY p.name;