> MS-Systemprozeduren gibt, die nirgendwo? dokumentiert sind.
Viele Gr��e
Hubert Daubmeier
sp_tables (T-SQL)
Gibt eine Liste der Objekte zur�ck, die in der aktuellen Umgebung abgefragt werden k�nnen (alle Objekte, die in einer FROM-Klausel zul�ssig sind).
Syntax
sp_tables [[@name =] 'name']
[,[@owner =]
'owner']
[,[@qualifier
=] 'qualifier']
[,[@type =]
"type"]
Argumente
- [@name =] 'name'
- Die Tabelle, mit der Kataloginformationen zur�ckgegeben werden. name ist vom Datentyp nvarchar(384); der Standardwert ist NULL. Mustervergleiche mit Platzhalterzeichen werden unterst�tzt.
- [@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 wird, werden die Regeln f�r die
Sichtbarkeit von Tabellen des zugrunde liegenden DBMS verwendet.
F�r Microsoft� SQL Server� bedeutet dies: Wenn der aktuelle Benutzer eine Tabelle mit dem angegebenen Namen besitzt, so werden die entsprechenden Spalteninformationen zur�ckgegeben. Falls der Besitzer nicht angegeben wird und der aktuelle Benutzer keine Tabelle mit dem angegebenen Namen besitzt, wird nach einer Tabelle mit dem angegebenen Namen gesucht, die dem Datenbankbesitzer geh�rt. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zur�ckgegeben.
- [@qualifier =] 'qualifier'
- Der Name des Tabellenqualifizierers. qualifier ist vom Datentyp sysname; der Standardwert ist NULL. Verschiedene DBMS-Produkte unterst�tzen eine dreiteilige Namengebung 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.
- [,[@type =] "'type'"]
- Eine Liste mit Werten, getrennt durch Kommas, die Informationen zu allen
Tabellen des angegebenen Tabellentyps bereitstellt, einschlie�lich TABLE,
SYSTEM TABLE und VIEW. type ist vom Datentyp varchar(100); der
Standardwert ist NULL.
Anmerkung Tabellentypen m�ssen in einfache Anf�hrungszeichen und der gesamte Parameter muss in doppelte Anf�hrungszeichen eingeschlossen werden. F�r Tabellentypen m�ssen Gro�buchstaben verwendet werden. Wenn SET QUOTED_IDENTIFIER auf ON eingestellt ist, m�ssen alle einfachen Anf�hrungszeichen in doppelte Anf�hrungszeichen umgewandelt werden, und der gesamte Parameter muss in einfache Anf�hrungszeichen eingeschlossen werden.
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 annehmen. |
| TABLE_OWNER | sysname | Der Name des Tabellenbesitzers. In SQL Server stellt diese Spalte den Namen des Benutzers dar, der die Tabelle erstellt hat. Dieses Feld gibt immer einen Wert zur�ck. |
| TABLE_NAME | sysname | Der Name der Tabelle. 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 SQLMustervergleich (die Platzhalterzeichen % und _) voraussetzen.
Da die Privileginformationen �ber die Lese- und Schreibberechtigung eines aktuellen Benutzers f�r eine bestimmte Tabelle nicht immer �berpr�ft werden, 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 Serverattribut ACCESSIBLE_TABLES im Resultset von sp_server_info den Wert Y hat, werden nur Informationen zu Tabellen zur�ckgegeben, auf die der aktuelle Benutzer Zugriff hat.
sp_tables entspricht SQLTables in ODBC. Die zur�ckgegebenen Informationen werden nach folgenden Spalten geordnet: TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER und TABLE_NAME.
Berechtigungen
Die Ausf�hrungsberechtigung erh�lt standardm��ig die public-Rolle.
Beispiele
A. Zur�ckgeben einer Liste der Objekte, die in der aktuellen Umgebung abgefragt werden k�nnen.
EXEC sp_tables
B. Zur�ckgeben von Informationen �ber die syscolumns-Tabelle in der Company-Datenbank
EXEC sp_tables syscolumns, dbo, Company, "'SYSTEM
TABLE'"
