Comment puis-je liste tous les non-procédures stockées système?

Je veux créer une requête à la liste de tous définis par l'utilisateur des procédures stockées, à l'exclusion de ceux qui sont des procédures stockées du système, en considérant que:

  1. Vérifiant le nom comme "sp_" ne fonctionne pas parce qu'il y a de l'utilisateur des procédures stockées qui commencent par "sp_".
  2. La vérification de la propriété is_ms_shipped ne fonctionne pas parce qu'il y a des procédures stockées du système qui ont le drapeau = 0, par exemple: sp_alterdiagram (il n'est pas MSShipped mais apparaît sous Système de Procédures Stockées dans SQL Server Management Studio).

Il doit y avoir une propriété, ou un drapeau quelque part, puisque vous pouvez voir le "Système de Procédures Stockées" dans un dossier distinct dans SQL 2005. Personne ne sait?


Edit: Une combinaison des suggestions ci-dessous a fonctionné pour moi:

select *
from 
    sys.objects             O LEFT OUTER JOIN
    sys.extended_properties E ON O.object_id = E.major_id
WHERE
    O.name IS NOT NULL
    AND ISNULL(O.is_ms_shipped, 0) = 0
    AND ISNULL(E.name, '') <> 'microsoft_database_tools_support'
    AND O.type_desc = 'SQL_STORED_PROCEDURE'
ORDER BY O.name
InformationsquelleAutor bubbassauro | 2009-12-29