sp_tables (Transact-SQL)

Gibt eine Liste von Objekten zurück, die in der aktuellen Umgebung abgefragt werden können. Dies beinhaltet alle Benutzertabellen, Systemtabellen oder Ansichten, jedoch keine Synonymobjekte.

HinweisHinweis

Wenn Sie den Namen des Basisobjekts eines Synonyms bestimmen möchten, fragen Sie die sys.synonyms-Katalogsicht ab.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_tables [ [ @table_name = ] 'name' ] 
     [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
     [ , [ @table_type = ] "type" ] 
     [ , [@fUsePattern = ] 'fUsePattern'];

Argumente

  • [ @table_name= ] 'name'
    Die Tabelle oder Sicht, für die Kataloginformationen zurückgegeben werden. name ist ein Wert vom Datentyp nvarchar(384) und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

  • [ @table_owner= ] 'owner'
    Der Tabellenbesitzer der Tabelle, mit der Kataloginformationen zurückgegeben werden. owner ist vom Datentyp nvarchar(384), der Standardwert ist NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn der Besitzer nicht angegeben ist, werden die Standardregeln für die Sichtbarkeit von Tabellen des zugrunde liegenden DBMS angewendet.

    In SQL Server werden die Spalten einer Tabelle zurückgegeben, wenn der aktuelle Benutzer diese Tabelle mit dem angegebenen Namen besitzt. Falls der Besitzer nicht angegeben ist und der aktuelle Benutzer keine Tabelle mit dem angegebenen Namen besitzt, wird nach einer Tabelle mit dem angegebenen Namen gesucht, deren Besitzer der Datenbankbesitzer ist. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.

  • [ @table_qualifier= ] 'qualifier'
    Der Name des Tabellenqualifizierers. qualifier ist vom Datentyp sysname, der Standardwert ist NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung 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= ] "'type', 'type'" ]
    Eine Liste mit Werten, getrennt durch Kommas, zum Abrufen von Informationen zu allen Tabellen des angegebenen Tabellentyps. Hierzu zählen TABLE, SYSTEMTABLE und VIEW. type ist ein Wert vom Datentyp varchar(100), der Standardwert ist NULL.

    HinweisHinweis

    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 auf ON festgelegt ist, müssen alle einfachen Anführungszeichen in doppelte Anführungszeichen geändert werden, und der gesamte Parameter muss in einfache Anführungszeichen eingeschlossen werden.

  • [ @fUsePattern = ] 'fUsePattern'
    Bestimmt, ob der Unterstrich (_), das Prozentzeichen (%) und eckige Klammern ([ oder ]) als Platzhalterzeichen interpretiert werden. Zulässige Werte sind 0 (Mustervergleich ist auf OFF festgelegt) und 1 (Mustervergleich ist auf ON festgelegt). fUsePattern ist vom Datentyp bit; der Standardwert ist 1.

Rückgabecodewerte

Keine

Resultsets

Spaltenname

Datentyp

Beschreibung

TABLE_QUALIFIER

sysname

Der Name des Qualifizierers der Tabelle. In SQL Server stellt diese Spalte den Datenbanknamen dar. Dieses Feld kann den Wert NULL aufweisen.

TABLE_OWNER

sysname

Der Name des Tabellenbesitzers. In SQL Server stellt diese Spalte den Namen des Datenbankbenutzers dar, der 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 für diese Spalte keinen Wert zurück.

Hinweise

Für maximale Interoperabilität sollte der Gatewayclient nur den SQL-92-Standard zum SQL-Mustervergleich (die Platzhalterzeichen % und _) voraussetzen.

Die Privileginformationen zum Lese- und Schreibzugriff des aktuellen Benutzers für eine bestimmte Tabelle werden nicht immer geprüft. Deshalb ist der Zugriff nicht sichergestellt. 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 Serverattribut ACCESSIBLE_TABLES im Resultset für sp_server_info den Wert Y aufweist, werden nur Tabellen zurückgegeben, auf die der aktuelle Benutzer zugreifen kann.

sp_tables entspricht SQLTables in ODBC. Die zurückgegebenen Ergebnisse werden nach folgenden Spalten geordnet: TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER und TABLE_NAME.

Berechtigungen

Erfordert die SELECT-Berechtigung für das Schema.

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 einer Datenbank

Im folgenden Beispiel werden Informationen zu den Tabellen zurückgegeben, die zum Person-Schema in der AdventureWorks2008R2-Datenbank gehören.

USE AdventureWorks2008R2;
GO
EXEC sp_tables 
   @table_name = '%',
   @table_owner = 'Person',
   @table_qualifier = 'AdventureWorks2008R2';