Seperti yang dinyatakan Mike, cara terbaik adalah menggunakan information_schema
. Selama Anda tidak berada di database master, prosedur tersimpan sistem tidak akan dikembalikan.
SELECT *
FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
Jika karena alasan tertentu Anda memiliki prosedur tersimpan non-sistem dalam database master, Anda dapat menggunakan kueri (ini akan memfilter KEBANYAKAN prosedur tersimpan sistem):
SELECT *
FROM [master].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')