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