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.