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