Ved hjelp av denne guiden lærer du hvordan du bruker SP_MSForEachdb () lagret prosedyre, hvordan du bruker den, og forskjellige eksempler på hvordan du bruker prosedyren.
Sys.sp_msforeachdb ()
SP_MSForEachdb () er en udokumentert lagret prosedyre tilgjengelig i hoveddatabasen. Den lar deg sløyfe over alle databasene i SQL Server -forekomsten og utføre SQL -spørsmål mot de spesifiserte databasene.
I SQL Server Management Studio kan du se denne prosedyren ved å navigere til Master Database -> Programmerbarhet -> Lagrede prosedyrer -> System lagrede prosedyrer.
Vi kan uttrykke prosedyresyntaks som vist:
Erklære @command varchar (255)La oss nå se på noen få eksempler på å bruke prosedyren.
EKSEMPEL 1-Viser navnene på alle databaser
Anta at du ønsker å få navnene på alle databasene i SQL Server -forekomsten; Du kan bruke MSForEachdb () -prosedyren som vist i eksemplet nedenfor:
Erklære @command varchar (255)Ovennevnte sett med spørsmål skal returnere navnene på alle databasene i tilfellet. Et eksempelutgang er som vist:
herreEksempel 2 - Vis databasestørrelser
Selv om det er forskjellige måter du kan bruke for å få størrelsen på en database i SQL Server, vil vi i dette eksemplet bruke SP_Spaceused -prosedyren.
Tenk på eksemplet som er vist nedenfor:
Erklære @command varchar (255)Ved hjelp av en enkelt kommando kan vi se størrelsen på alle databasene som vist i eksempelutgangen nedenfor:
Eksempel 3 - Vis alle kolonnene i databasene
For å se kolonnene i hver database, kan du utføre en spørring som vist i eksemplet utdraget nedenfor:
Erklære @command varchar (255);Spørringen over skal returnere kolonnene i hver database som vist:
Eksempel 4 - krympe alle databaser
Du kan krympe størrelsen på alle databasene på serveren ved å bruke MSForEachdb -prosedyren som vist nedenfor:
Erklære @command varchar (255);Ovennevnte eksempel vil prøve å krympe størrelsen på alle databasene på serveren. Hvis du har en omfattende samling av databaser, unngå å bruke denne spørringen, da det kan ta lang tid og blokkere andre prosesser fra å bruke databasene.
Eksempelutgang er som vist:
Lukking
Lukking
Denne opplæringen viser deg hvordan du bruker SP_MSForEachdb () lagret prosedyre for å utføre SQL -spørsmål på alle databasene i SQL Server -forekomsten.
Takk for at du leser, og følg med for flere SQL Server -opplæringsprogrammer.