13 votes

Comment obtenir la liste de toutes les procédures stockées et de leurs paramètres commençant par un certain préfixe ?

Existe-t-il un moyen d'interroger la base de données et de récupérer une liste de toutes les procédures stockées et de leurs paramètres ?
J'utilise SQL Server 2000.

31voto

AdaTheDev Points 53358

Pour obtenir des informations sur les procédures stockées :

SELECT * FROM INFORMATION_SCHEMA.ROUTINES 

Pour trouver les sprocs commençant par un certain préfixe (par exemple "usp") :

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

Pour trouver tous les paramètres d'une procédure stockée :

SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='YourSprocName'

Pour trouver tous les paramètres de toutes les procédures stockées commençant par un certain préfixe :

SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME LIKE 'usp%'

4voto

masoud ramezani Points 5205

Essayez celui-ci :

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'

1voto

Pour afficher une liste de toutes les procédures et de leurs paramètres, il faudrait procéder de la manière suivante :

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'

Cela fonctionne dans SQL Server 2016 mais je suppose que cela fonctionne aussi dans les versions plus anciennes.

-1voto

La requête suivante renvoie les procédures, fonctions et filtres par un préfixe. Je ne suis pas sûr, cependant, que cela fonctionne sur sql server 2000. Je la laisse ici en référence de toute façon, parce que c'est une bonne requête utile.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X