sql >> Database >  >> RDS >> Sqlserver

SQL Server-lijsttabellen:alle tabellen weergeven

Afhankelijk van de versie van SQL Server die u gebruikt, kan de methode voor het opvragen en retourneren van een lijst met alle door de gebruiker gemaakte tabellen enigszins verschillen. Hieronder zullen we kort de TSQL-statements bekijken die kunnen worden gebruikt om een ​​tabellijst op te halen voor zowel de oudere SQL Server 2000 als de nieuwere versie van 2005 of hoger.

Tabellen weergeven in SQL Server 2000

Voor oudere versies van SQL Server (zoals SQL Server 2000, hoewel deze methode ook wordt ondersteund in SQL Server 2005 voor achterwaartse compatibiliteit), moet u de SYS.SYSOBJECTS opvragen. metagegevens bekijken. SYS.SYSOBJECTS bevat een rij voor elk object dat in de database is gemaakt, inclusief stored procedures , views , en user tables (die belangrijk zijn om te onderscheiden van system tables .)

De SYSOBJECTS tabel bevat een paar dozijn kolommen met gegevens, omdat deze informatie moet bevatten over vrijwel alles dat in de loop van de tijd aan de server is toegevoegd. Om daarom een ​​lijst met door gebruikers gemaakte tabellen te vinden (waardoor system tables worden genegeerd), ), moeten we resultaten vinden waarbij de xtype kolom (die het object type specificeert) voor die rij) is gelijk aan de waarde U , wat staat voor user table . Het resulterende TSQL-statement zou er als volgt uit moeten zien:

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

Opmerking:sinds SYSOBJECTS maken deel uit van de SYS naamruimte, bij het opvragen van SYSOBJECTS het is niet nodig om op te geven dat SYSOBJECTS maakt deel uit van de globale SYS naamruimte, zodat we deze kunnen weglaten zoals in het bovenstaande voorbeeld.

Hiermee wordt een resultatenlijst geretourneerd van alle door de gebruiker gemaakte tabellen. Aangezien de hoeveelheid informatie die wordt geretourneerd bij het doorzoeken van alle kolommen vrij groot is, wilt u misschien de resultaten inkorten door alleen de name te bekijken kolom en misschien de crdate (datum van aanmaak):

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

Tabellen weergeven in SQL Server 2005 of nieuwer

Het weergeven van alle tabellen in SQL-server bij gebruik van een nieuwere versie (SQL 2005 of hoger) is een kwestie van de INFORMATION_SCHEMA opvragen weergaven die automatisch in SQL Server worden ingebouwd. Hiermee kunt u eenvoudig een grote verscheidenheid aan metagegevens voor deze specifieke SQL Server-instantie bekijken, inclusief informatie over COLUMNS , ROUTINES , en zelfs TABLES .

U merkt wellicht dat er vier kolommen worden geretourneerd bij het gebruik van de INFORMATION_SCHEMA.TABLES bekijken, maar de belangrijkste kolom is TABLE_TYPE , die bepaalt of de tabel in die rij een echte tabel is (BASE TABLE ) of een weergave (VIEW ).

Om alle tabellen en . terug te geven views in één query, voer dan de volgende TSQL-instructie uit:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Het kan ook verstandig zijn om de database te specificeren die u wilt opvragen:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Als u alleen werkelijke tabellen wilt ophalen en weergaven uit de resultaten wilt filteren, voegt u een WHERE TABLE_TYPE = 'BASE TABLE' toe clausule:

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

  1. Let op:Array naar string conversie in

  2. Hoe u alle weergaven in Oracle Database kunt weergeven

  3. [BIJGEWERKT 2020-01-23] Microsoft Office 365 Build 1912 Breekt de identiteit van ODBC Linked Tables

  4. Database die>500 miljoen rijen aankan