|

Como posso obter uma lista de todas stored procedures em meu servidor?

Compartilhe :

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 sysobjects ainda funciona no SQL Server atual apenas como view de compatibilidade, mas está oficialmente descontinuada — a Microsoft recomenda migrar para sys.objects ou 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_objects ou remova o filtro por tipo em sys.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;

Posts Similares