Come si trova una procedura memorizzata contenente un determinato testo? Mentre capisco che il posto migliore per fare questo tipo di ricerca è attraverso il tuo strumento di controllo del codice sorgente, ma ci sono modi per farlo nel database?Ricerca testo in stored procedure in SQL Server 2005
8
A
risposta
15
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%your text here%'
AND ROUTINE_TYPE='PROCEDURE'
2
È possibile cercare sys.sql_modules. La definizione contiene il testo delle procedure. La vista contiene procedure, viste, udfs, ecc. Per limitarti alle stored procedure, devi unirti a sys.procedure su object_id.
12
SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON m.object_id=o.object_id
WHERE m.definition Like '%Serach_Text%'
Whoa. Molto utile. Grazie mille. –
Attenzione, routine_definition viene ritagliata a 4000 caratteri nel caso si abbia una procedura lunga. sys.sql_modules non ha lo stesso problema. – PeteT
+1 per essere il modo agnostico di risolvere il problema – Jim