2010-02-28 6 views

Antwort

26

Um Informationen zu den gespeicherten Prozeduren zu erhalten:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES 

die sprocs mit einem bestimmten Präfix (zB "usp") beginnen zu finden:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME LIKE 'usp%' 

Um alle Parameter für eine gespeicherte Prozedur zu finden:

SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='YourSprocName' 
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME LIKE 'usp%' 
+0

+1. Allerdings etwas über das angeforderte Präfix. – AxelEckenberger

+0

Soll ich den WHERE SPECIFIC_NAME = ... zu LIKE "MyTable_ *" ändern? –

+1

Meine Antwort wurde mit 2 weiteren Beispielen aktualisiert, um nach einem bestimmten Präfix zu suchen. – AdaTheDev

4

versuchen Sie diesen:

select o.name,p.name from sys.all_parameters p inner join sys.all_objects o on p.object_id = o.object_id 
where o.type = 'P' 
-1

die folgende Abfrage gibt die Prozeduren, Funktionen und Filter durch einen PräfixUm mit einem bestimmten Präfix beginnen alle Parameter für alle gespeicherten Prozeduren zu finden. Ich bin mir aber nicht sicher, ob es auf SQL Server 2000 funktionieren würde. Ich lasse es hier trotzdem die Referenz, denn es ist eine gute nützliche Abfrage.

SELECT o.name AS [Procedure name], p.name as [Parameter name] 
FROM sys.parameters p INNER JOIN sysobjects o ON p.object_id = o.id 
WHERE o.name LIKE 'prefix%' AND o.xtype = 'P' 

Es funktioniert in SQL Server 2016, aber ich denke, es funktioniert auch in älteren Versionen:

SELECT SCHEMA_NAME(SCHEMA_ID) AS [Schema], 
SO.name AS [ObjectName], 
SO.Type_Desc AS [ObjectType (UDF/SP)], 
COALESCE(P.parameter_id,0) AS [ParameterID], 
COALESCE(P.name, 'NO PARAMETER') AS [ParameterName], 
COALESCE(TYPE_NAME(P.user_type_id),'') AS [ParameterDataType], 
COALESCE(P.max_length,0) AS [ParameterMaxBytes], 
COALESCE(P.is_output,0) AS [IsOutPutParameter] 
FROM sys.objects AS SO 
LEFT OUTER JOIN sys.parameters AS P 
ON SO.OBJECT_ID = P.OBJECT_ID 
WHERE SO.OBJECT_ID IN (SELECT OBJECT_ID 
FROM sys.objects 
WHERE TYPE IN ('P','FN')) 
AND SO.NAME LIKE 'U%' --starting with a certain prefix 
ORDER BY [Schema], SO.name, P.parameter_id 
GO 
1

Um eine Liste aller Verfahren und deren Parameter zu zeigen, es auf diese Weise sein würde.

Verwandte Themen