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

SQL Server List Tables:Jak zobrazit všechny tabulky

V závislosti na verzi serveru SQL, kterou používáte, se způsob dotazování a vracení seznamu všech tabulek vytvořených uživatelem může mírně lišit. Níže stručně prozkoumáme příkazy TSQL, které lze použít k načtení seznamu tabulek pro starší SQL Server 2000 i novější verzi 2005 nebo novější.

Výpis tabulek v SQL Server 2000

U starších verzí SQL Server (jako je SQL Server 2000, ačkoli tato metoda je kvůli zpětné kompatibilitě podporována také v SQL Server 2005), budete muset zadat dotaz na SYS.SYSOBJECTS zobrazení metadat. SYS.SYSOBJECTS obsahuje řádek pro každý objekt, který byl vytvořen v databázi, včetně stored procedures , views a user tables (které je důležité odlišit od system tables .)

SYSOBJECTS tabulka obsahuje několik tuctů sloupců dat, protože musí obsahovat informace o prakticky všem, co se časem přidá na server. Chcete-li tedy najít seznam tabulek vytvořených uživatelem (a tedy ignorovat system tables ), budeme muset najít výsledky, kde je xtype sloupec (který určuje object type pro tento řádek) se rovná hodnotě U , což znamená user table . Výsledný TSQL příkaz by měl vypadat takto:

SELECT
  *
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Poznámka:Od SYSOBJECTS jsou součástí SYS jmenný prostor při dotazování SYSOBJECTS není nutné specifikovat, že SYSOBJECTS je součástí globálního SYS jmenný prostor, takže jej můžeme vynechat, jak je ukázáno v příkladu výše.

Tím se vrátí seznam výsledků všech tabulek vytvořených uživatelem. Protože množství informací vrácených při dotazování na všechny sloupce je poměrně velké, možná budete chtít zkrátit výsledky zobrazením pouze name a možná i crdate (datum vytvoření):

SELECT
  name,
  crdate
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Výpis tabulek v SQL Server 2005 nebo novějším

Výpis všech tabulek na serveru SQL při použití novější verze (SQL 2005 nebo vyšší) je otázkou dotazu na INFORMATION_SCHEMA pohledy, které jsou automaticky integrovány do SQL Serveru. Ty vám umožňují snadno zobrazit širokou škálu metadat pro tuto konkrétní instanci SQL Server, včetně informací o COLUMNS , ROUTINES a dokonce TABLES .

Můžete si všimnout, že při použití INFORMATION_SCHEMA.TABLES jsou vráceny čtyři sloupce zobrazit, ale nejdůležitější sloupec je TABLE_TYPE , která určuje, zda tabulka v tomto řádku je skutečnou tabulkou (BASE TABLE ) nebo zobrazení (VIEW ).

Chcete-li vrátit všechny tabulky a zobrazení v jednom dotazu, proveďte následující příkaz TSQL:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Může být také rozumné zadat databázi, kterou chcete dotazovat:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Pokud chcete načíst pouze skutečné tabulky a odfiltrovat zobrazení z výsledků, přidejte WHERE TABLE_TYPE = 'BASE TABLE' klauzule:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE';
GO

  1. Postgres – Převeďte seznam sousedství na vnořený objekt JSON

  2. Další informace o zřetězení v SQL s příklady

  3. Jak nainstalovat SQL Server na Linux

  4. Funkce TO_TIMESTAMP() v Oracle