Hvis du bruger SQL Server via en kommandolinjegrænseflade, ser du sandsynligvis ikke en vedvarende liste over databaser, som du normalt ville gøre, når du bruger en GUI (såsom SSMS eller Azure Data Studio).
I sådanne tilfælde kan du bruge sp_databases
systemlagret procedure for at returnere en liste over databaser. Denne lagrede procedure lister specifikt databaser, der enten findes i en forekomst af SQL Server eller er tilgængelige via en databasegateway.
Dette er sandsynligvis den hurtigste og nemmeste måde at liste alle databaser ved hjælp af T-SQL. Du kan blot skrive sp_databases
for en liste over databaser, eller for at være mere eksplicit, EXEC sp_databases
.
Syntaks
Syntaksen ser sådan ud:
sp_databases
Det er alt, der er. Ingen argumenter er påkrævet eller accepteret.
Eksempel
Her er et eksempel på brug.
EXEC sp_databases;
Her er resultatet, jeg får i et af mine testmiljøer:
+--------------------+-----------------+-----------+ | DATABASE_NAME | DATABASE_SIZE | REMARKS | |--------------------+-----------------+-----------| | master | 6592 | NULL | | model | 16384 | NULL | | msdb | 15872 | NULL | | Music | 16384 | NULL | | MyDB | 16384 | NULL | | tempdb | 24576 | NULL | | Test | 16384 | NULL | | WideWorldImporters | 3248128 | NULL | | world | 16384 | NULL | +--------------------+-----------------+-----------+
Og hvis det er for meget at skrive, er det her uden EXEC
:
sp_databases
Det giver de samme resultater.
Databaser på en sammenkædet server
Hvis du har brug for at få en liste over databaser fra en linket server, skal du bruge sp_catalogs
mens du sender navnet på den tilknyttede server.
Se Liste over alle databaser fra en sammenkædet server i SQL Server for mere information og eksempler.