Níže jsou uvedeny tři způsoby, jak můžeme pomocí T-SQL vrátit seznam databází na serveru SQL.
sp_databases
Uložená procedura
V SQL Server, sp_databases
uložená procedura uvádí seznam databází, které jsou buď umístěny v instanci serveru SQL, nebo jsou přístupné přes bránu databáze.
Zde je příklad provedení tohoto postupu:
sp_databases;
Příklad výsledku:
+-----------------------+-----------------+-----------+ | DATABASE_NAME | DATABASE_SIZE | REMARKS | |-----------------------+-----------------+-----------| | KrankyKranes | 16384 | NULL | | master | 6848 | NULL | | model | 16384 | NULL | | msdb | 79040 | NULL | | Music | 16384 | NULL | | NarrowNationExporters | 147456 | NULL | | tempdb | 24576 | NULL | | WideWorldImporters | 3575808 | NULL | | World | 81920 | NULL | +-----------------------+-----------------+-----------+
Pokud příkaz není první v dávce, budete muset před název procedury přidat buď EXEC
nebo EXECUTE
.
Následující tři příkazy jsou tedy ekvivalentní:
sp_databases;
EXEC sp_databases;
EXECUTE sp_databases;
První příkaz však lze použít pouze v případě, že se jedná o první příkaz v dávce.
sys.databases
Zobrazit
Soubor sys.databases
pohled obsahuje jeden řádek na databázi v instanci SQL Server.
Zde je příklad dotazování tohoto zobrazení:
SELECT name
FROM sys.databases;
Příklad výsledku:
+-----------------------+ | name | |-----------------------| | master | | tempdb | | model | | msdb | | Music | | KrankyKranes | | WideWorldImporters | | World | | NarrowNationExporters | +-----------------------+
Toto zobrazení obsahuje mnoho sloupců a můžete jej propojit s jinými zobrazeními/tabulkami, takže je to ideální volba, když potřebujete více informací než sp_databases
procedura se vrátí.
sys.sysdatabases
Tabulka/Zobrazení
sys.sysdatabases
je ekvivalentem sys.databases
.
Takže bychom mohli jednoduše vyměnit sys.databases
ve výše uvedeném příkladu na sys.sysdatabases
získat stejný výsledek:
SELECT name
FROM sys.sysdatabases;
Výsledek:
+-----------------------+ | name | |-----------------------| | master | | tempdb | | model | | msdb | | Music | | KrankyKranes | | WideWorldImporters | | World | | NarrowNationExporters | +-----------------------+
Této možnosti byste se však měli vyhnout.
Tato systémová tabulka SQL Server 2000 je součástí aktuálních verzí SQL Serveru jako pohled pro zpětnou kompatibilitu. V budoucí verzi Microsoft SQL Server bude odstraněn. Společnost Microsoft doporučuje, abychom se v nových vývojových pracích vyvarovali používání této funkce a plánovali úpravy aplikací, které tuto funkci aktuálně používají.
Pokud tedy narazíte na starý skript, který odkazuje na sys.sysdatabases
, měli byste přemýšlet o změně na sys.databases
.
Propojené servery
Pokud potřebujete získat seznam databází z propojeného serveru, použijte sp_catalogs
při předávání názvu propojeného serveru.
Další informace a příklady naleznete v části Seznam všech databází z propojeného serveru na serveru SQL.