sp_tables (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt eine Liste von Objekten zurück, die in der aktuellen Umgebung abgefragt werden können. Dies bedeutet jede Tabelle oder Sicht, mit Ausnahme von Synonymobjekten.
Hinweis
Um den Namen des Basisobjekts eines Synonyms zu ermitteln, fragen Sie die Katalogsicht sys.synonyms ab.
Transact-SQL-Syntaxkonventionen
Syntax
Syntax für SQL Server, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW):
sp_tables
[ [ @table_name = ] N'table_name' ]
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @table_type = ] 'table_type' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
Argumente
[ @table_name = ] N'table_name'
Die Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_name ist "nvarchar(384)" mit einem Standardwert von NULL
. Mustervergleiche mit Platzhalterzeichen werden unterstützt.
[ @table_owner = ] N'table_owner'
Der Tabellenbesitzer der Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_owner ist "nvarchar(384)" mit einem Standardwert von NULL
. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn der Besitzer nicht angegeben ist, gelten die Standardtabellensichtsregeln der zugrunde liegenden DBMS.
In SQL Server werden die Spalten einer Tabelle zurückgegeben, wenn der aktuelle Benutzer/die aktuelle Benutzerin eine Tabelle mit dem angegebenen Namen besitzt. Wenn der Besitzer nicht angegeben ist und der aktuelle Benutzer keine Tabelle mit dem angegebenen Namen besitzt, sucht diese Prozedur nach einer Tabelle mit dem angegebenen Namen, der dem Datenbankbesitzer gehört. Wenn eine Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.
[ @table_qualifier = ] N'table_qualifier'
Der Name des Tabellenqualifizierers. @table_qualifier ist "sysname" mit einem Standardwert von NULL
. Verschiedene DBMS-Produkte unterstützen die dreiteilige Benennung für Tabellen (<qualifier>.<owner>.<name>
). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.
[ @table_type = ] 'table_type'
Eine Durch Kommas getrennte Liste mit Werten, die Informationen zu allen Tabellen der angegebenen Tabellentypen enthalten. Dazu zählen TABLE
, SYSTEMTABLE
und VIEW
. @table_type ist varchar(100), mit einem Standardwert von NULL
.
Jeder Tabellentyp muss in einfache Anführungszeichen und der gesamte Parameter in doppelte Anführungszeichen eingeschlossen werden. Für Tabellentypen müssen Großbuchstaben verwendet werden. Wenn SET QUOTED_IDENTIFIER
ja ON
, muss jedes einzelne Anführungszeichen verdoppelt werden, und der gesamte Parameter muss in einfache Anführungszeichen eingeschlossen werden.
[ @fUsePattern = ] fUsePattern
Bestimmt, ob der Unterstrich (_
), prozent (%
) und eckige Zeichen ([
oder ]
) als Platzhalterzeichen interpretiert werden. Gültige Werte sind 0
(Musterabgleich ist deaktiviert) und 1
(Mustervergleich ist aktiviert). @fUsePattern ist bit, mit einem Standardwert von 1
.
Rückgabecodewerte
Keine.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
TABLE_QUALIFIER |
sysname | Der Name des Tabellenqualifizierers. In SQL Server stellt diese Spalte den Datenbanknamen dar. Dieses Feld kann sein NULL . |
TABLE_OWNER |
sysname | Der Name des Tabellenbesitzers. In SQL Server stellt diese Spalte den Namen des Datenbankbenutzers bzw. der Datenbankbenutzerin dar, der/die die Tabelle erstellt hat. Dieses Feld gibt immer einen Wert zurück. |
TABLE_NAME |
sysname | Tabellenname. Dieses Feld gibt immer einen Wert zurück. |
TABLE_TYPE |
varchar(32) | Tabelle, Systemtabelle oder Sicht. |
REMARKS |
varchar(254) | SQL Server gibt keinen Wert für diese Spalte zurück. |
Hinweise
Für maximale Interoperabilität sollte der Gatewayclient nur den SQL-92-Standard zum SQL-Mustervergleich (die Platzhalterzeichen % und _) voraussetzen.
Berechtigungsinformationen zum Lese- oder Schreibzugriff auf eine bestimmte Tabelle werden nicht immer überprüft. Daher ist der Zugriff nicht garantiert. Dieses Resultset enthält nicht nur Tabellen und Sichten, sondern auch Synonyme und Aliasnamen für Gateways zu DBMS-Produkten, die diese Typen unterstützen. Wenn das Server-Attribut ACCESSIBLE_TABLES
Y im Resultset für sp_server_info
ist, werden nur Tabellen zurückgegeben, auf die der aktuelle Benutzer zugreifen kann.
sp_tables
SQLTables
entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_TYPE
, , TABLE_QUALIFIER
, TABLE_OWNER
und TABLE_NAME
.
Berechtigungen
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
A. Zurückgeben einer Liste von Objekten, die in der aktuellen Umgebung abgefragt werden können
Das folgende Beispiel gibt eine Liste von Objekten zurück, die in der aktuellen Umgebung abgefragt werden können.
EXEC sp_tables;
B. Zurückgeben von Informationen zu den Tabellen in einem angegebenen Schema
Das folgende Beispiel gibt Informationen zu den Tabellen zurück, die zum Schema Person
in der AdventureWorks2022-Datenbank gehören.
USE AdventureWorks2022;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks2022';
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
C. Zurückgeben einer Liste von Objekten, die in der aktuellen Umgebung abgefragt werden können
Das folgende Beispiel gibt eine Liste von Objekten zurück, die in der aktuellen Umgebung abgefragt werden können.
EXEC sp_tables;
D: Zurückgeben von Informationen zu den Tabellen in einem angegebenen Schema
Das folgende Beispiel gibt Informationen zu den Dimensionstabellen in der AdventureWorksPDW2012
-Datenbank zurück.
-- Uses AdventureWorks
EXEC sp_tables
@table_name = 'Dim%',
@table_owner = 'dbo',
@table_qualifier = 'AdventureWorksPDW2012';