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.Comment obtenir la liste de toutes les procédures stockées et leurs paramètres en commençant par un certain préfixe?
Répondre
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 rechercher 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 pour toutes les procédures stockées en commençant par un certain préfixe:
SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME LIKE 'usp%'
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'
la requête suivante retourne les procédures, les fonctions et les filtres par un préfixe. Je ne suis pas sûr cependant, si cela fonctionnerait sur sql server 2000. Je laisse ici la référence de toute façon, parce que c'est une bonne question 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
Pour afficher une liste de toutes les procédures et leurs paramètres, il serait ainsi:
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'
Il travaille dans SQL Server 2016, mais je suppose que cela fonctionne dans les anciennes versions aussi.
- 1. Méthode simple pour obtenir par programme toutes les procédures stockées
- 2. Toutes les procédures stockées répertoriées par créer une date?
- 3. Crystal Reports et procédures stockées avec paramètres
- 4. Différence entre les procédures stockées et les procédures stockées étendues
- 5. toutes les tables et procédures stockées pour fichier
- 6. Procédures et fonctions stockées
- 7. enregistrements liste en utilisant des procédures stockées
- 8. Comment faire un "pour chaque", en commençant par un certain index d'une liste (Python)?
- 9. Variables et procédures stockées
- 10. Trouver toutes les procédures stockées appel d'une fonction
- 11. renommer les procédures stockées
- 12. Procédures sous-sonnettes et stockées
- 13. Procédures stockées et banques
- 14. Les procédures stockées LinqToSql rendent toujours les paramètres nullables. Pourquoi?
- 15. Perl Dbi et les procédures stockées
- 16. Paramètres des procédures stockées dans SQL Server
- 17. Afficher toutes les procédures stockées dans une base de données
- 18. Liste des procédures stockées du tableau
- 19. Pagination du jeu de résultats Oracle, renvoyé par les procédures stockées
- 20. verrouillé procédures stockées en sql
- 21. Comment obtenir une liste de commandes commençant par une certaine clé (combo) dans Emacs?
- 22. Entity Framework 4.0 et les procédures stockées
- 23. Procédures stockées C++ et CLR
- 24. polymorphisme alternative pour les procédures stockées MySQL
- 25. Motifs pour les procédures stockées?
- 26. Winforms C# - Comment passer les paramètres aux procédures stockées SQL Server
- 27. Script toutes les procédures stockées dans Management Studio 2005
- 28. Silverlight 4 et les procédures stockées
- 29. Procédures C# et stockées ASP.NET
- 30. Comment utiliser les procédures stockées avec Symfony et Doctrine
+1. Cependant, chose sur le préfixe demandé. – AxelEckenberger
Devrais-je changer le WHERE SPECIFIC_NAME = ... en LIKE "MyTable_ *"? –
Mise à jour ma réponse avec 2 autres exemples, pour rechercher par un certain préfixe. – AdaTheDev