Usando questa guida, imparerai come utilizzare la procedura memorizzata SP_MSForeachdb (), come usarla e vari esempi di come utilizzare la procedura.
Sys.sp_msforachdb ()
SP_MSFEREACHDB () è una procedura memorizzata non documentata disponibile nel database principale. Ti consente di eseguire il ciclo su tutti i database nell'istanza SQL Server ed eseguire query SQL rispetto ai database specificati.
In SQL Server Management Studio, è possibile visualizzare questa procedura navigando nel database master -> Programmabilità -> Procedure memorizzate -> Procedure memorizzate di sistema.
Possiamo esprimere la sintassi della procedura come mostrato:
Dichiarare @Command Varchar (255)Vediamo ora alcuni esempi di utilizzo della procedura.
Esempio 1-SHOW I nomi di tutti i database
Supponiamo di voler ottenere i nomi di tutti i database nell'istanza del server SQL; È possibile utilizzare la procedura msfofoachdb () come mostrato nell'esempio seguente:
Dichiarare @Command Varchar (255)Il set di query sopra dovrebbe restituire i nomi di tutti i database in istanza. Un output di esempio è come mostrato:
maestroEsempio 2: mostra le dimensioni del database
Sebbene ci siano vari modi in cui è possibile utilizzare per ottenere le dimensioni di un database in SQL Server, in questo esempio, useremo la procedura SP_Spaceused.
Considera l'esempio mostrato di seguito:
Dichiarare @Command Varchar (255)Utilizzando un singolo comando, possiamo visualizzare la dimensione di tutti i database come mostrato nell'output di esempio di seguito:
Esempio 3: mostra tutte le colonne nei database
Per visualizzare le colonne in ciascun database, è possibile eseguire una query come mostrato nello snippet di esempio di seguito:
Dichiarare @Command Varchar (255);La query sopra dovrebbe restituire le colonne in ciascun database come mostrato:
Esempio 4 - Ridurre tutti i database
È possibile ridurre le dimensioni di tutti i database nel server utilizzando la procedura MSFEROACHDB come mostrato di seguito:
Dichiarare @Command Varchar (255);La query di esempio sopra proverà a ridurre le dimensioni di tutti i database sul server. Se si dispone di una raccolta completa di database, evita di utilizzare questa query in quanto potrebbe richiedere molto tempo e bloccare altri processi dall'uso dei database.
L'output di esempio è come mostrato:
Chiusura
Chiusura
Questo tutorial mostra come utilizzare la procedura memorizzata SP_MSForeachdb () per eseguire query SQL su tutti i database nell'istanza SQL Server.
Grazie per aver letto e rimanete sintonizzati per altri tutorial di SQL Server.