Rechercher la procédure stockée par nom

Y a-t-il un moyen de trouver dans SQL Server Management Studio une procédure stockée par nom ou par partie du nom? (sur le contexte de la firebase database active)

Merci pour l’aide

Vous pouvez utiliser:

select * from sys.procedures where name like '%name_of_proc%' 

si vous avez besoin du code, vous pouvez regarder dans la table syscomments

 select text from syscomments c inner join sys.procedures p on p.object_id = c.object_id where p.name like '%name_of_proc%' 

Modifier la mise à jour:

vous pouvez également utiliser la version ansi standard

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

En supposant que vous êtes dans les détails de l’explorateur d’objects ( F7 ) affichant la liste des procédures stockées, cliquez sur le bouton Filtres et entrez le nom (ou le nom partiel).

texte alt

Cela fonctionnera également pour les tables et les vues, pas seulement pour les sprocs:

 SELECT '[' + s.name + '].[' + o.Name + ']', o.type_desc FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE o.name = 'CreateAllTheThings' -- if you are certain of the exact name OR o.name LIKE '%CreateAllThe%' -- if you are not so certain 

Il vous donne également le nom du schéma qui sera utile dans toute firebase database non sortingviale (par exemple, une requête nécessitant une requête pour trouver une procédure stockée par nom).

Vous pouvez utiliser cette requête:

 SELECT ROUTINE_CATALOG AS DatabaseName , ROUTINE_SCHEMA AS SchemaName, SPECIFIC_NAME AS SPName , ROUTINE_DEFINITION AS SPBody , CREATED AS CreatedDate, LAST_ALTERED AS LastModificationDate FROM INFORMATION_SCHEMA.ROUTINES WHERE (ROUTINE_DEFINITION LIKE '%%') AND (ROUTINE_TYPE='PROCEDURE') AND (SPECIFIC_NAME LIKE '%AssessmentToolDegreeDel') 

Comme vous pouvez le voir, vous pouvez également effectuer une recherche dans le corps de la procédure stockée.

Truc très soigné, je trébuche en essayant de l’injection SQL, dans l’explorateur d’objects dans la boîte de recherche utilisez simplement vos caractères de pourcentage, et cela cherchera TOUTES les procédures stockées, fonctions, vues, tableaux, schémas, index … J’en ai marre de penser à plus 🙂

Motif de recherche

Lorsque j’ai un nom de procédure de stockage et que je ne connais pas la firebase database à laquelle il appartient, j’utilise les éléments suivants:

 Use [master] GO DECLARE @dbname VARCHAR(50) DECLARE @statement NVARCHAR(max) DECLARE db_cursor CURSOR LOCAL FAST_FORWARD FOR --Status 48 (mirrored db) SELECT name FROM MASTER.dbo.sysdatabases WHERE STATUS NOT LIKE 48 AND name NOT IN ('master','model','msdb','tempdb','dissortingbution') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @dbname WHILE @@FETCH_STATUS = 0 BEGIN SELECT @statement = 'SELECT * FROM ['+@dbname+'].INFORMATION_SCHEMA.ROUTINES WHERE [ROUTINE_NAME] LIKE ''%name_of_proc%'''+';' print @statement EXEC sp_executesql @statement FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor