Jak uvedl Mike, nejlepším způsobem je použít information_schema
. Dokud nejste v hlavní databázi, systémové uložené procedury se nevracejí.
SELECT *
FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
Pokud jste z nějakého důvodu měli v hlavní databázi nesystémové uložené procedury, můžete použít dotaz (tím se odfiltruje VĚTŠINA systémových uložených procedur):
SELECT *
FROM [master].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')