Freigeben über


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_infoist, werden nur Tabellen zurückgegeben, auf die der aktuelle Benutzer zugreifen kann.

sp_tablesSQLTables entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_TYPE, , TABLE_QUALIFIER, TABLE_OWNERund 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';