Avhengig av hvilken versjon av SQL Server du kjører, metoden for spørring og returnerer en liste over alle brukerdefinerte tabeller kan være litt forskjellige. Nedenfor vil vi kort undersøke TSQL uttalelser som kan brukes til å hente en oversikt for både eldre SQL Server 2000 og nyere 2005 versjon eller utover.,
Liste Tabeller i SQL Server 2000
For eldre versjoner av SQL Server (for eksempel SQL Server 2000, selv om denne metoden er også støttet i SQL Server 2005 for bakoverkompatibilitet), trenger du å spørre SYS.SYSOBJECTS
metadata vise. SYS.SYSOBJECTS
inneholder en rad for hvert objekt som har blitt opprettet i databasen, inkludert stored procedures
, views
, og user tables
(som er et viktig skille fra system tables
.,)
SYSOBJECTS
tabell hus et par dusin kolonner med data siden den må inneholde informasjon om nesten alt lagt til serveren over tid. Derfor, for å finne en liste over brukerdefinerte tabeller (og dermed ignorerer system tables
), trenger vi å finne resultater der xtype
kolonne (som angir object type
for at rad) er lik verdien U
, som står for user table
., Den resulterende TSQL uttalelse bør se ut som dette:
SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO
Merk: Siden SYSOBJECTS
er en del av SYS
navnerom, når spørring SYSOBJECTS
det er unødvendig å presisere at SYSOBJECTS
er en del av den globale SYS
navnerom, så vi kan utelate det som er vist i eksemplet ovenfor.
Dette vil returnere et resultat liste over alle brukerdefinerte tabeller., Siden mengden av informasjon som returneres når det sendes en spørring til alle kolonner som er ganske stor, kan det hende du ønsker å trimme resultatene ved å vise bare name
kolonne-og kanskje crdate
(dato for opprettelse):
SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO
Liste Tabeller i SQL Server 2005 eller Nyere
Liste over alle tabeller i SQL server når du bruker en nyere versjon (SQL 2005 eller senere), er et spørsmål om å spørre INFORMATION_SCHEMA
synspunkter som er automatisk innebygd i SQL Server., Disse lar deg enkelt vise et bredt utvalg av metadata for denne SQL Server-instans, inkludert informasjon om COLUMNS
, ROUTINES
, og selv TABLES
.
Du kan legge merke til at det er fire kolonner som returneres når du bruker INFORMATION_SCHEMA.TABLES
vis, men det viktigste kolonnen er TABLE_TYPE
, som avgjør om bord i denne raden er en reell tabell (BASE TABLE
) eller view (VIEW
).,
for Å returnere alle tabeller og visninger i en spørring, utfør følgende TSQL uttalelse:
SELECT *FROM INFORMATION_SCHEMA.TABLES;GO
Det kan også være lurt å angi den databasen du ønsker å søke:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO
Hvis du bare ønsker å hente faktiske tabeller og filtrere ut utsikt fra resultatene, legge til en WHERE TABLE_TYPE = 'BASE TABLE'
klausulen:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE';GO