sql >> Databáze >  >> RDS >> Sqlserver

3 způsoby, jak získat seznam databází v SQL Server (T-SQL)

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.


  1. Rozsah dočasných tabulek v SQL Server

  2. Jak vybrat a seřadit podle sloupců, které nejsou v SQL příkazu Groupy By - Oracle

  3. ExecuteScalar vs ExecuteNonQuery při vrácení hodnoty identity

  4. Vložení do Oracle a načtení vygenerovaného ID sekvence