Afhængigt af, hvilken version af SQL Server, du kører, er den metode til at forespørge og returnerer en liste af alle brugeroprettede tabeller kan afvige en smule. Nedenfor vil vi kort undersøge, TSQL udsagn, der kan bruges til at hente en liste over for både de ældre SQL Server 2000 og nyere 2005 version eller ud.,

Oversigt Tabeller i SQL Server 2000

Til ældre versioner af SQL Server (såsom SQL Server 2000, selv om denne metode er også understøttet i SQL Server 2005 til bagudkompatibilitet), vil du nødt til at søge i SYS.SYSOBJECTS metadata udsigt. SYS.SYSOBJECTS indeholder en række for hvert objekt, der er oprettet i databasen, herunder stored procedures views og user tables (som er vigtige at skelne fra system tables.,)

SYSOBJECTS tabel huser et par dusin kolonner med data, da det skal indeholde oplysninger om stort set alt, der er tilføjet til serveren over tid. Derfor, for at finde en liste over bruger-skabt tabeller (således at ignorere system tables), vi bliver nødt til at finde resultater, hvor xtype kolonne (som angiver object type for at række) er lig med den værdi U som står for user table., Den resulterende TSQL erklæring skal se ud som dette:

SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO

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

dette returnerer en resultatliste over alle brugeroprettede tabeller., Da mængden af information, der returneres, når forespørge alle kolonner er ganske stort, kan du ønsker at trimme resultaterne ved at se kun name kolonne og måske crdate (dato for oprettelse):

SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO

Oversigt Tabeller i SQL Server 2005 eller Nyere

en Liste over alle tabeller i SQL server, når du bruger en nyere version (SQL 2005 eller nyere), er et spørgsmål om at forespørge INFORMATION_SCHEMA synspunkter, som er automatisk indbygget i SQL Server., Disse giver dig mulighed for nemt at se en bred vifte af metadata for denne særlige SQL Server-forekomst, herunder oplysninger om COLUMNS ROUTINES, og selv TABLES.

Du kan mærke, at der er fire kolonner, der returneres, når du bruger INFORMATION_SCHEMA.TABLES vis, men den vigtigste kolonne er TABLE_TYPE, der bestemmer, om bordet i denne række er en egentlig tabel (BASE TABLE) eller et billede (iVIEW).,

for At vende tilbage til alle tabeller og visninger i en forespørgsel, skal du udføre følgende TSQL erklæring:

SELECT *FROM INFORMATION_SCHEMA.TABLES;GO

Det kan også være klogt at angive den database, du ønsker at søge:

SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO

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

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