2010-03-26 15 views
15

Ich versuche, eine Liste der gespeicherten Prozeduren in T-SQL abrufen. Ich bin mit der Zeile:Abrufen einer gefilterten Liste von gespeicherten Prozeduren mit t-sql

exec sys.sp_stored_procedures; 

Ich mag würde die Ergebnisse zurück, obwohl filtern, so dass ich nur Benutzer erstellt gespeicherte Prozeduren erhalten. Ich möchte sp_ *, dt_ *, fn_ *, xp_ * und alles andere herausfiltern, das eine Systemspeicherprozedur und kein Interesse für mich ist. Wie kann ich die zurückgegebene Ergebnismenge manipulieren?

Verwenden von Sql Server 2008 Express.

Gelöst! Hier ist, was ich verwendet:

SELECT name FROM sys.procedures 
WHERE [type] = 'P' 
AND name NOT LIKE 'sp_%' 
AND name NOT LIKE 'dt_%' 
ORDER BY name ASC; 
+0

Der Titel dieser Frage die Lösung nicht übereinstimmen, könnte der Titel sein bearbeitet, um "gespeicherte Prozeduren aufzulisten"? –

+0

Ich stimme zu, der Titel war schrecklich. Ich habe es aktualisiert. – DanDan

Antwort

15

Vielmehr ist die gespeicherte Prozedur als verwenden, können Sie die folgenden Ansichten verwenden:

Select * From sys.procedures 
Where [Type] = 'P' 

oder

Select * From Information_Schema.Routines 
+0

Danke! Ich werde die vollständige Lösung zurück in meine Frage bringen. – DanDan

2

Wählen Sie Elemente aus dem sysobjects table und verwenden Sie eine Klausel where type = 'P' für Stored Procedures und Filter auf name.

1
SELECT [Routine_Name] 
FROM [INFORMATION_SCHEMA].[ROUTINES] 
WHERE [ROUTINE_TYPE] = 'PROCEDURE' 
Verwandte Themen