Som Mike sagde, er den bedste måde at bruge information_schema
. Så længe du ikke er i masterdatabasen, vil systemlagrede procedurer ikke blive returneret.
SELECT *
FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
Hvis du af en eller anden grund havde ikke-systemlagrede procedurer i masterdatabasen, kunne du bruge forespørgslen (dette vil filtrere DE MEST systemlagrede procedurer fra):
SELECT *
FROM [master].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')