Abhängig von der Version von SQL Server, die Sie ausführen, kann die Methode zum Abfragen und Zurückgeben einer Liste aller vom Benutzer erstellten Tabellen geringfügig abweichen. Im Folgenden werden wir kurz die TSQL-Anweisungen untersuchen, mit denen eine Tabellenliste sowohl für den älteren SQL Server 2000 als auch für die neuere Version 2005 oder darüber hinaus abgerufen werden kann.,
Tabellen in SQL Server 2000 auflisten
Für ältere Versionen von SQL Server (z. B. SQL Server 2000, obwohl diese Methode aus Gründen der Abwärtskompatibilität auch in SQL Server 2005 unterstützt wird) müssen Sie die SYS.SYSOBJECTS
Metadatenansicht abfragen. SYS.SYSOBJECTS
enthält eine Zeile für jedes Objekt, das in der Datenbank erstellt wurde, einschließlich stored procedures
, views
und user tables
(die wichtig sind, um von system tables
zu unterscheiden.,)
Die – Tabelle enthält ein paar Dutzend Datenspalten, da sie Informationen über praktisch alles enthalten muss, was dem Server im Laufe der Zeit hinzugefügt wurde. Um eine Liste von vom Benutzer erstellten Tabellen zu finden (wobei system tables
ignoriert wird), müssen wir daher Ergebnisse finden, bei denen die Spalte (die die object type
für diese Zeile angibt) gleich dem Wert U
ist, der für user table
., Die resultierende TSQL-Anweisung sollte folgendermaßen aussehen:
SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO
Hinweis: Da Teil des SYS
Namespace sind, muss bei der Abfrage von nicht angegeben werden, dass ist Teil des globalen SYS
Namespace, sodass wir ihn wie im obigen Beispiel weglassen können.
Dies gibt eine Ergebnisliste aller vom Benutzer erstellten Tabellen zurück., Da die Menge an Informationen, die beim Abfragen aller Spalten zurückgegeben werden, ziemlich groß ist, möchten Sie möglicherweise die Ergebnisse kürzen, indem Sie nur die Spalte name
und möglicherweise die Spalte crdate
(Erstellungsdatum) anzeigen:
SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO
Auflistung von Tabellen in SQL Server 2005 oder neuer
Auflistung aller die Tabellen in SQL Server bei Verwendung einer neueren Version (SQL 2005 oder höher) müssen die INFORMATION_SCHEMA
– Ansichten abgefragt werden, die automatisch in SQL Server integriert werden., Auf diese Weise können Sie auf einfache Weise eine Vielzahl von Metadaten für diese bestimmte SQL Server-Instanz anzeigen, einschließlich Informationen zu COLUMNS
, ROUTINES
und sogar TABLES
.
Sie können feststellen, dass bei Verwendung der Ansicht INFORMATION_SCHEMA.TABLES
vier Spalten zurückgegeben werden, aber die wichtigste Spalte ist TABLE_TYPE
, die bestimmt, ob die Tabelle in dieser Zeile eine tatsächliche Tabelle ist (BASE TABLE
) oder eine Ansicht (VIEW
).,
Um alle Tabellen und Ansichten in einer Abfrage zurückzugeben, führen Sie die folgende TSQL-Anweisung aus:
SELECT *FROM INFORMATION_SCHEMA.TABLES;GO
Möglicherweise ist es auch ratsam, die Datenbank anzugeben, die Sie abfragen möchten:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO
Wenn Sie nur tatsächliche Tabellen abrufen und filtern möchten, aus Ansichten aus den Ergebnissen, fügen Sie eine WHERE TABLE_TYPE = 'BASE TABLE'
Klausel:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE';GO