Oggi stavo curiosando sul sito di Red Gate Software (forse per via del simpatico post di Ale) quando scopro tra gli innumerevoli prodotti della prolifica software house inglese un piccolo tool gratuito in grado di eseguire ricerche di stringhe tra il codice T-SQL dei nostri oggetti (stored procedure, UDF, view, ecc) oppure tra il nome di colonne, tabelle e di qualunque altro oggetto in un particolare db o in tutti i db ospitati sull'instanza!
Lo scorso anno mi sono occupato del consolidamento di parecchie istanze SQL Server 2000 su due cluster SQL Server 2008. Alcune di queste contenevano una serie di oggetti (in particolare sp e trigger) che richiamavano alcune extended stored procedure custom. Su 2008 abbiamo convertito tali xp in procedure CLR ma ho dovuto individuare gli oggetti che ne facevano uso per modificare le chiamate.
In che modo? Beh, interrogando le catalog views sys.objects e sys.sql_modules e filtrando il result set finale con una LIKE. OK, niente di fantascientifico ma uno strumento come SQL Search mi sarebbe tornato davvero utile.
Il setup si limita al download ed alla esecuzione del pacchetto msi (un paio di MB in tutto) e nel nostro SQL Server Management Studio (2005 e 2008) vedremo comparire una nuova toolbar con un solo bottone: SQL Search appunto.
L'utilizzo rispecchia in tutto e per tutto l'esperienza di navigazione della address bar di un comune browser: si digita una stringa e lo strumento dietro le quinte inizia a ricercare gli oggetti che soddisfano la condizione di ricerca.
La risposta è praticamente in tempo reale e come ho avuto modo di anticipare sopra è possibile stabilire dei criteri di ricerca aggiuntivi:
- Exact Match ovvero ricerca dell'intera frase (utile per stringhe costituite da più parole)
- Per oggetto (tabelle, viste, sp, UDF, constraints, ecc)
- Per database
- Per istanza
Bello, eh?
Leggendo le FAQ ho notato che in futuro il prodotto verrà probabilmente integrato in SQL Prompt ma ad ogni modo questa versione 1.0 rimarrà gratuita ed utilizzabile a piacimento.
Chi volesse approfondire il prodotto, suggerire nuove funzionalità o segnarare bug può servirsi dell'apposita stanza sui forum aziendali.