Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête pour lister toutes les procédures stockées

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_')