Was ist der beste Weg, um die Namen aller Tabellen in einer bestimmten Datenbank unter SQL Server abzurufen?
sql-server
tsql
database-table
Strahl
quelle
quelle
SHOW TABLES
(wie in MySQL verwendet)?Antworten:
SQL Server 2000, 2005, 2008, 2012, 2014, 2016, 2017 oder 2019:
Nur Tabellen aus einer bestimmten Datenbank anzeigen
Oder,
PS: Für SQL Server 2000:
quelle
WHERE TABLE_TYPE='BASE TABLE'
umfasst nur Basistabellen (und als Erweiterung können Sie diese immer verwendenWHERE TABLE_TYPE != 'VIEW'
).AND name <> 'sysdiagrams'
.Hier ist eine Liste anderer Objekttypen, nach denen Sie ebenfalls suchen können:
quelle
SELECT name FROM sysobjects WHERE xtype = 'U'
würde das gleiche tun.PK,FK,D,C,V,UQ
etc versucht , um die Quell- und Zieldatenbank zu vergleichen, aber dann habe ich diese Funktion in VS gefunden, aber gibt es keinesql query
, um die vollständige Quell- und Zieldatenbank zu vergleichen?'U'
die Benutzertabelle verwendet wird ... im Gegensatz zu vielleicht'UT'
oder, am intuitivsten,'T'
... Ah, das funktioniert!ODER
quelle
ODER
quelle
SQL Server 2012
quelle
quelle
(SQL Server 2000-Standard; wird in SQL Server 2005 weiterhin unterstützt.)
quelle
select * from sysobjects where xtype='U'
quelle
quelle
SELECT name FROM sysobjects WHERE xtype='U' AND name <> 'sysdiagrams';
da die von Microsoft SQL Server Management Studio erstellte Sysdiagrams-Tabelle technisch gesehen keine Systemtabelle ist, sondern eine, die wir normalerweise trotzdem ausschließen möchten.Der Nachteil von
INFORMATION_SCHEMA.TABLES
ist, dass es auch Systemtabellen wiedtproperties
und dieMSpeer_...
Tabellen enthält, ohne dass Sie sie von Ihren eigenen Tabellen unterscheiden können.Ich würde empfehlen,
sys.objects
(die neue Version der veralteten Sysobjects- Ansicht) zu verwenden, die das Ausschließen der Systemtabellen unterstützt:quelle
So rufen Sie in SSMS alle vollständig qualifizierten Tabellennamen in einer bestimmten Datenbank ab (z. B. "MyDatabase"):
Ergebnisse:
quelle
Bitte benutzen Sie dies. Sie erhalten Tabellennamen zusammen mit Schemanamen:
quelle
quelle
Vielen Dank an Ray Vega, dessen Antwort alle Benutzertabellen in einer Datenbank enthält ...
sp_helptext zeigt die zugrunde liegende Abfrage, die zu ...
quelle
Nun, Sie können sys.objects verwenden , um alle Datenbankobjekte abzurufen .
ODER
quelle
Dieser Link kann viel mehr Informationen zu diesem Thema enthalten
quelle
Die Verwendung
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
zeigt Ihnen auch alle Tabellen und zugehörigen Spalten.quelle