Om du använder SQL Server via ett kommandoradsgränssnitt, ser du förmodligen inte en beständig lista med databaser som du normalt skulle göra när du använder ett GUI (som SSMS eller Azure Data Studio).
I sådana fall kan du använda sp_databases
systemlagrad procedur för att returnera en lista med databaser. Denna lagrade procedur listar specifikt databaser som antingen finns i en instans av SQL Server eller är tillgängliga via en databasgateway.
Detta är förmodligen det snabbaste och enklaste sättet att lista alla databaser som använder T-SQL. Du kan helt enkelt skriva sp_databases
för en lista över databaser, eller för att vara mer explicit, EXEC sp_databases
.
Syntax
Syntaxen ser ut så här:
sp_databases
Det är allt som finns. Inga argument krävs eller accepteras.
Exempel
Här är ett exempel på användning.
EXEC sp_databases;
Här är resultatet jag får i en av mina 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 | +--------------------+-----------------+-----------+
Och om det är för mycket att skriva, här är det utan EXEC
:
sp_databases
Det ger samma resultat.
Databaser på en länkad server
Om du behöver få en lista över databaser från en länkad server, använd sp_catalogs
medan du skickar in namnet på den länkade servern.
Se Lista alla databaser från en länkad server i SQL Server för mer information och exempel.