sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server Listetabeller:Sådan viser du alle tabeller

Afhængigt af den version af SQL Server, du kører, kan metoden til at forespørge og returnere en liste over alle brugeroprettede tabeller afvige en smule. Nedenfor vil vi kort undersøge de TSQL-sætninger, der kan bruges til at hente en tabelliste for både den ældre SQL Server 2000 og den nyere 2005-version eller senere.

Opstilling af tabeller i SQL Server 2000

For ældre versioner af SQL Server (såsom SQL Server 2000, selvom denne metode også understøttes i SQL Server 2005 for bagudkompatibilitet), skal du forespørge SYS.SYSOBJECTS metadatavisning. SYS.SYSOBJECTS indeholder en række for hvert objekt, der er blevet oprettet i databasen, inklusive stored procedures , views , og user tables (som er vigtige at skelne fra system tables .)

SYSOBJECTS tabellen rummer et par dusin kolonner med data, da den skal indeholde information om stort set alt, der er tilføjet serveren over tid. Derfor for at finde en liste over brugeroprettede tabeller (og dermed ignorere system tables ), bliver vi nødt til at finde resultater, hvor xtype kolonne (som angiver object type for den række) er lig med værdien U , som står for user table . Den resulterende TSQL-sætning skulle se sådan ud:

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

Bemærk:Siden SYSOBJECTS er en del af SYS navneområde, når du forespørger SYSOBJECTS det er unødvendigt at specificere at SYSOBJECTS er en del af den globale SYS navneområde, så vi kan udelade det som vist i eksemplet ovenfor.

Dette vil returnere en resultatliste over alle brugeroprettede tabeller. Da mængden af ​​information, der returneres, når du forespørger i alle kolonner, er ret stor, vil du måske trimme resultaterne ved kun at se name kolonnen og måske crdate (oprettelsesdato):

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

Angivelse af tabeller i SQL Server 2005 eller nyere

At angive alle tabellerne i SQL-serveren, når du bruger en nyere version (SQL 2005 eller nyere), er et spørgsmål om at forespørge INFORMATION_SCHEMA visninger, som automatisk er indbygget i SQL Server. Disse giver dig mulighed for nemt at se en lang række metadata for denne særlige SQL Server-instans, inklusive oplysninger om COLUMNS , ROUTINES , og endda TABLES .

Du bemærker muligvis, at der returneres fire kolonner, når du bruger INFORMATION_SCHEMA.TABLES visning, men den vigtigste kolonne er TABLE_TYPE , som bestemmer, om tabellen i den pågældende række er en faktisk tabel (BASE TABLE ) eller en visning (VIEW ).

For at returnere alle tabeller og visninger i én forespørgsel, skal du udføre følgende TSQL-sætning:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Det kan også være klogt at angive den database, du ønsker at forespørge på:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Hvis du kun ønsker at hente faktiske tabeller og filtrere visninger fra resultaterne, skal du tilføje en WHERE TABLE_TYPE = 'BASE TABLE' klausul:

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

  1. Kalder lagret procedure ved hjælp af VBA

  2. Datareplikering i IRI Workbench

  3. Python MySQL-stik - ulæst resultat fundet ved brug af fetchone

  4. Slut dig til os i Amsterdam til et møde med OptimaData &VidaXL