Comme Mike l'a dit, le meilleur moyen est d'utiliser information_schema
. Tant que vous n'êtes pas dans la base de données principale, les procédures stockées du système ne seront pas renvoyées.
SELECT *
FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
Si, pour une raison quelconque, vous aviez des procédures stockées non système dans la base de données principale, vous pouvez utiliser la requête (cela filtrera la PLUPART des procédures stockées système) :
SELECT *
FROM [master].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')