Jak stwierdził Mike, najlepszym sposobem jest użycie information_schema
. Dopóki nie znajdujesz się w głównej bazie danych, systemowe procedury składowane nie zostaną zwrócone.
SELECT *
FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
Jeśli z jakiegoś powodu w głównej bazie danych znajdowały się niesystemowe procedury składowane, możesz użyć zapytania (to odfiltruje WIĘKSZOŚĆ systemowych procedur składowanych):
SELECT *
FROM [master].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')