Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta para listar todos os procedimentos armazenados


Como Mike afirmou, a melhor maneira é usar information_schema . Enquanto você não estiver no banco de dados mestre, os procedimentos armazenados do sistema não serão retornados.
SELECT * 
  FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE'

Se, por algum motivo, você tiver procedimentos armazenados fora do sistema no banco de dados mestre, poderá usar a consulta (isso filtrará a MAIORIA dos procedimentos armazenados do sistema):
SELECT * 
  FROM [master].INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE' 
   AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')