Se sei un amministratore o uno sviluppatore di database di SQL Server, devi cercare frequentemente oggetti di database specifici i cui nomi puoi ricordare solo in parte. L'approccio manuale all'esecuzione di queste operazioni di ricerca richiede molto tempo, soprattutto quando il database ha un numero elevato di oggetti.
Un altro scenario è quello in cui si desidera cercare dati specifici in tutte le tabelle del database. In questo caso, è necessario eseguire un'istruzione SELECT più volte in base al numero di tabelle o viste del database in cui si desidera eseguire la ricerca oppure scrivere un cursore complesso per eseguire un ciclo e cercare in tutte le tabelle del database, il che richiede competenze di sviluppo avanzate di SQL Server.
In questo articolo, esamineremo diversi modi per cercare un oggetto o dati di database specifici in SQL Server, passando gradualmente dai metodi integrati e immergendoci in uno strumento di terze parti che rende un gioco da ragazzi ottenere il database richiesto oggetto o dati.
Interrogazione di sys.objects
Sys.objects è una vista a gestione dinamica del sistema SQL Server che può essere utilizzata per elencare tutti gli oggetti definiti in un database specifico.
Ad esempio, per elencare tutti gli oggetti di database che hanno "Emp" nei loro nomi, possiamo interrogare il DMV del sistema sys.objects in base al nome dell'oggetto, come nella query T-SQL di seguito:
SELECT NAME AS ObjName ,schema_name(schema_id) AS SchemaName ,type AS ObjType ,type_desc AS ObjTypeDesc ,create_date ,modify_date FROM sys.objects WHERE NAME LIKE '%Emp%' ORDER BY ObjName ASC, ObjType ASC
E il risultato restituito dal mio database di test, con informazioni complete sul nome completo dell'oggetto, sul tipo, sulla creazione e sui dati di modifica, sarà il seguente:
Esplora oggetti di SQL Server Management Studio
Un altro metodo che può essere utilizzato per cercare un oggetto database specifico nel database è Esplora oggetti di SQL Server Management Studio.
Quando si utilizza SQL Server Management Studio per connettersi e amministrare l'istanza di SQL Server, è possibile aprire Esplora oggetti scegliendo l'opzione Dettagli Esplora oggetti nel menu Visualizza o semplicemente premendo il tasto F7 , come mostrato di seguito:
Quando viene aperto Esplora oggetti, puoi cercare un oggetto database specifico nel modo seguente:
- accedi al database in cui desideri eseguire la ricerca
- scrivi il nome (completo o parziale) dell'oggetto database nella Cerca casella di testo
- premi Invio per avviare il processo di ricerca
L'elenco di tutti gli oggetti del database che soddisfano i tuoi criteri di ricerca verrà visualizzato come mostrato di seguito:
Per andare alla posizione di un oggetto database specifico, dal risultato della ricerca di Esplora oggetti aperto, fare clic con il pulsante destro del mouse su quell'oggetto database e scegliere Sincronizza opzione, come mostrato di seguito:
Il puntatore ti condurrà automaticamente alla posizione di quell'oggetto come mostrato di seguito:
Filtro di SQL Server Management Studio
SQL Server Management Studio offre un altro modo per cercare e individuare un oggetto database specifico utilizzando i filtri.
Gli oggetti del database possono essere filtrati come segue:
- accedi al database in cui si trovano gli oggetti
- espandi il nodo del database
- punta alla cartella in cui si trova l'oggetto (come tabelle, viste, stored procedure o funzioni)
- fai clic con il pulsante destro del mouse su quel nodo e scegli Impostazioni filtro sotto il Filtro elenco delle opzioni, come mostrato di seguito:
Dalle Impostazioni filtro aperte finestra, scegli i criteri di ricerca che utilizzerai per identificare l'oggetto del database (es. nome, schema o proprietario di quell'oggetto, l'operatore che verrà utilizzato nel filtro di ricerca). Ad esempio, è possibile cercare un oggetto database con il nome uguale, contenente o meno il valore fornito. Dopo aver specificato i criteri di filtro, fai clic su OK per applicare il filtro:
Una volta applicato il filtro, vedrai che solo gli oggetti del database che soddisfano i criteri di ricerca del filtro verranno elencati sotto il nodo del tipo di oggetti, come mostrato di seguito:
Per rimuovere il filtro e visualizzare nuovamente tutti gli oggetti del database, fare clic con il pulsante destro del mouse sul nodo relativo all'elenco degli oggetti del database, ovvero le Tabelle nel nostro esempio e scegli Rimuovi filtro opzione dall'elenco Opzioni filtro e tutti gli oggetti del database verranno nuovamente visualizzati, come mostrato di seguito:
Ricerca dati in SQL Server Management Studio
Oltre a scrivere query SELECT per cercare un valore specifico, SQL Server Management Studio offre un altro modo per cercare i valori delle colonne e modificarli direttamente a livello di oggetto del database in base ai criteri specificati.
Per cercare un valore di dati da una tabella specifica, passare a quella tabella in SQL Server Management Studio, fare clic con il pulsante destro del mouse su quella tabella e selezionare Modifica le prime 200 righe opzione, come mostrato di seguito:
Dalla finestra aperta, fai clic sull'icona Tabella mostrata di seguito per visualizzare la finestra di filtraggio:
Nella finestra di filtraggio aperta, specifica la condizione e le colonne che ti interessano. Nell'esempio seguente, elencheremo tutte le righe dei dipendenti con ID maggiore di 10:
Dopo aver impostato il filtro, fai clic con il pulsante destro del mouse in un punto qualsiasi in un'area vuota e scegli Esegui SQL opzione per applicare le condizioni:
Le righe che soddisfano le condizioni applicate verranno visualizzate nella griglia dei risultati e puoi eseguire aggiornamenti su questi dati, come mostrato di seguito:
Cerca uno strumento di terze parti per SQL Server
Fino a questo punto, abbiamo discusso diversi metodi di ricerca di oggetti di database e dati di tabelle. Ma questi metodi ci forniscono tipi specifici di informazioni che non possono essere filtrate, ordinate o gestite facilmente. Questo è il motivo per cui dobbiamo cercare strumenti di terze parti disponibili sul mercato e, si spera, trovarne uno che fornisca tutte le funzionalità di ricerca discusse nella stessa finestra e ci consenta di gestire i risultati in base alle nostre esigenze.
Uno degli strumenti di terze parti più utili e intuitivi che possono essere utilizzati facilmente e rapidamente per cercare qualsiasi tipo di oggetto o dato di database è dbForge Search for SQL Server di Devart.
dbForge Search per SQL Server è un componente aggiuntivo gratuito di SQL Server Management Studio che ci offre la possibilità di individuare qualsiasi oggetto o dato di database di SQL Server, senza la necessità di esaminare SSMS Object Explorer o richiamare la posizione di tale oggetto. Ci consente di cercare in tutti gli oggetti di database o di impostare i nostri filtri di ricerca per individuare rapidamente oggetti o dati di database e navigarli facilmente in SSMS Object Explorer. Con dbForge Search per SQL Server, puoi anche ordinare e filtrare i risultati della ricerca come desideri.
Lo strumento gratuito dbForge Search per SQL Server può essere scaricato dalla pagina di download di Devart e facilmente installabile sulla tua macchina utilizzando una procedura guidata di installazione diretta, come mostrato di seguito:
La procedura guidata di installazione ti chiederà innanzitutto di specificare la cartella di installazione per dbForge Search per SQL Server:
Quindi ti consentirà di scegliere la versione di SQL Server Management Studio installata sul tuo computer:
Infine, puoi scegliere quale ottimizzazione di avvio verrà applicata allo strumento per migliorarne le prestazioni, come mostrato di seguito:
All'avvio dell'installazione di dbForge Search per SQL Server, puoi monitorare il processo di installazione tramite la barra di avanzamento dell'installazione:
Dopo aver completato il processo di installazione del componente aggiuntivo dbForge Search per SQL Server, la procedura guidata di installazione ci avviserà che il componente aggiuntivo è stato installato correttamente per la versione SSMS selezionata e pronto per essere utilizzato:
Per iniziare a utilizzare lo strumento di ricerca dbForge, aprire SQL Server Management Studio. Troverai l'icona univoca dello strumento di ricerca, come mostrato di seguito:
Fai clic su Ricerca dbForge icona e si aprirà una nuova finestra, che ti offre la possibilità di cercare sia gli oggetti del database che i dati delle tabelle:
Ricerca oggetti nel database
Supponiamo di dover cercare tutti gli oggetti del database contenenti "emp" nei loro nomi nel database di AdevtureWorks2016.
Fai clic sul DDL pulsante a sinistra per scegliere Cerca oggetti database opzione, scrivi la frase di ricerca nella casella di ricerca, quindi seleziona l'istanza di SQL Server che contiene quel database e il nome dei database su cui eseguire la ricerca:
Successivamente, seleziona il tipo di oggetto del database che desideri cercare in Tipi di oggetto elenco a discesa:
Infine, specifica il tipo di ricerca che eseguirai. Puoi cercare gli oggetti del database con l'esatta parola fornita, gli oggetti che corrispondono all'intera parola fornita o utilizzare i caratteri jolly (ad esempio, '%') per restituire oggetti con nomi contenenti la frase fornita:
Dopo aver cliccato sul pulsante di ricerca vicino al testo fornito, vedrai i risultati visualizzati in due sezioni. La prima sezione contiene i dettagli completi su tutti gli oggetti del database che soddisfano i criteri di ricerca forniti. Nella seconda sezione troverai l'istruzione T-SQL utilizzata per creare l'oggetto database selezionato:
Oltre alla possibilità di ordinare il risultato restituito in base a qualsiasi colonna, lo strumento di ricerca dbForge ci offre la possibilità di raggruppare il risultato della ricerca in base al tipo di oggetto. Per raggruppare il risultato della ricerca per ogni oggetto del database, fai clic sull'icona Raggruppamento, come puoi vedere di seguito:
Il risultato della ricerca sarà raggruppato per tipi di oggetti del database, il che semplifica l'individuazione e la gestione degli oggetti che ti interessano:
Dopo aver selezionato l'oggetto database necessario dai risultati della ricerca, è possibile individuare facilmente quell'oggetto in SSMS Object Explorer facendo clic con il pulsante destro del mouse e selezionando Trova in Object Explorer opzione:
Ricerca dati
Lo strumento di ricerca dbForge ci consente anche di cercare un testo o un valore numerico specifico nelle tabelle o nelle viste del database. Per modificare la modalità di ricerca da ricerca oggetto database a ricerca dati, fare clic su Dati pulsante di ricerca sul lato sinistro della finestra, selezionare l'istanza di SQL Server in cui è ospitato il database e i database, le tabelle e le viste in cui cercare i dati. Dopo aver specificato i criteri e i filtri di ricerca dei dati, scrivere il valore dei dati che cercherai e fai clic sull'icona di ricerca vicino al testo fornito, come mostrato di seguito:
Anche in questo caso, il risultato verrà visualizzato in due sezioni. La prima sezione mostra le informazioni complete sulla posizione del valore restituito e la seconda sezione mostra la riga completa che contiene quel valore:
Dagli esempi precedenti, possiamo vedere chiaramente quanto sia facile e veloce lo strumento dbForge Search nella ricerca e nella localizzazione di qualsiasi oggetto o dato di database, tenendo in considerazione che il processo di ricerca sarà più veloce quando forniamo criteri di ricerca precisi e ristretti. Provalo tu stesso!