Freigeben über


sp_columns (Transact-SQL)

Gibt Spalteninformationen für die angegebenen, in der aktuellen Umgebung abfragbaren Objekte zurück.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]

Argumente

  • [ @table_name=] object
    Der Name des Objekts zur Rückgabe von Kataloginformationen. object kann eine Tabelle, eine Sicht oder ein anderes Objekt mit Spalten sein, z. B. Tabellenwertfunktionen. object ist vom Datentyp nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

  • [ @table_owner=] owner
    Ist der Objektbesitzer des Objekts zur Rückgabe von Kataloginformationen. owner ist vom Datentyp nvarchar(384) und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn owner nicht angegeben wird, gelten die Standardregeln für die Sichtbarkeit von Objekten des zugrunde liegenden DBMS.

    Wenn der aktuelle Benutzer ein Objekt mit dem angegebenen Namen besitzt, werden die Spalten dieses Objekts zurückgegeben. Wenn owner nicht angegeben ist und der aktuelle Benutzer kein Objekt mit dem angegebenen object besitzt, sucht sp_column nach einem Objekt mit dem angegebenen object, das im Besitz des Datenbankbesitzers ist. Sofern ein solches Objekt vorhanden ist, werden dessen Spalten zurückgegeben.

  • [ @table_qualifier=] qualifier
    Der Name des Objektqualifizierers. qualifier ist vom Datentyp sysname und hat den Standardwert NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Objekte (qualifier**.owner.**name). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei einigen anderen Produkten stellt sie den Servernamen der Datenbankumgebung für das Objekt dar.

  • [ @column_name=] column
    Eine einzelne Spalte, die verwendet wird, wenn nur eine Spalte mit Kataloginformationen benötigt wird. column ist vom Datentyp nvarchar(384). Der Standardwert ist NULL. Wenn column nicht angegeben wird, werden alle Spalten zurückgegeben. In SQL Server stellt column den Spaltennamen gemäß der Angabe in der syscolumns-Tabelle dar. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Für eine optimale Interoperabilität sollte der Gatewayclient nur einen SQL-92-Standardmustervergleich voraussetzen (die Platzhalterzeichen % und _).

  • [ @ODBCVer=] ODBCVer
    Die verwendete ODBC-Version. ODBCVer ist vom Datentyp int. Der Standardwert ist 2. Dieser gibt ODBC, Version 2, an. Gültige Werte sind 2 oder 3. Informationen zu den Verhaltensunterschieden zwischen den Versionen 2 und 3 finden Sie in der SQLColumns-Spezifikation von ODBC.

Rückgabecodewerte

Keine

Resultsets

Die gespeicherte Prozedur für Kataloginformationen sp_columns entspricht SQLColumns in ODBC. Die zurückgegebenen Ergebnisse werden nach folgenden Spalten geordnet: TABLE_QUALIFIER, TABLE_OWNER und TABLE_NAME.

Spaltenname

Datentyp

Beschreibung

TABLE_QUALIFIER

sysname

Objektqualifizierername. Dieses Feld kann den Wert NULL annehmen.

TABLE_OWNER

sysname

Objektbesitzername. Dieses Feld gibt immer einen Wert zurück.

TABLE_NAME

sysname

Objektname. Dieses Feld gibt immer einen Wert zurück.

COLUMN_NAME

sysname

Der Spaltenname für jede Spalte des zurückgegebenen Werts von TABLE_NAME. Dieses Feld gibt immer einen Wert zurück.

DATA_TYPE

smallint

Ein ganzzahliger Code für einen ODBC-Datentyp. Bei einem Datentyp, der keinem ODBC-Datentyp zugeordnet werden kann, wird der Wert NULL zurückgegeben. Der Name des systemeigenen Datentyps wird in der TYPE_NAME-Spalte zurückgegeben.

TYPE_NAME

sysname

Die Zeichenfolge, die den Datentyp darstellt. Den Datentypnamen stellt das zugrunde liegende DBMS bereit.

PRECISION

int

Die Anzahl der signifikanten Stellen. Der Rückgabewert für die PRECISION-Spalte hat die Basis 10.

LENGTH

int

Die Übertragungsgröße der Daten.1

SCALE

smallint

Die Anzahl der Ziffern rechts vom Dezimalzeichen.

RADIX

smallint

Die Basis für numerische Datentypen.

NULLABLE

smallint

Gibt die NULL-Zulässigkeit an.

1 = NULL ist möglich

0 = NOT NULL

REMARKS

varchar(254)

Dieses Feld gibt immer NULL zurück.

COLUMN_DEF

nvarchar(4000)

Standardwert der Spalte

SQL_DATA_TYPE

smallint

Der Wert des SQL-Datentyps, wie er im TYPE-Feld des Deskriptors angezeigt wird. Diese Spalte entspricht der DATA_TYPE-Spalte mit Ausnahme des datetime-Datentyps und des SQL-92-Datentyps interval. Diese Spalte gibt immer einen Wert zurück.

SQL_DATETIME_SUB

smallint

Untertypcode für den datetime-Datentyp und den SQL-92-Datentyp interval. Bei allen anderen Datentypen gibt diese Spalte NULL zurück.

CHAR_OCTET_LENGTH

int

Die maximale Länge (in Byte) einer Spalte eines Zeichendatentyps oder eines ganzzahligen Datentyps. Bei allen anderen Datentypen gibt diese Spalte NULL zurück.

ORDINAL_POSITION

int

Die Position einer Spalte innerhalb des Objekts. Die erste Spalte im Objekt hat den Wert 1. Diese Spalte gibt immer einen Wert zurück.

IS_NULLABLE

varchar(254)

Die NULL-Zulässigkeit einer Spalte innerhalb des Objekts. Die NULL-Zulässigkeit wird gemäß den ISO-Regeln bestimmt. Ein DBMS nach ISO SQL kann keine leere Zeichenfolge zurückgeben.

YES = Spalte kann NULL-Werte enthalten.

NO = Spalte kann keine NULL-Werte enthalten.

Die Spalte gibt eine leere Zeichenfolge zurück, wenn die NULL-Zulässigkeit unbekannt ist.

Der für diese Spalte zurückgegebene Wert unterscheidet sich von dem für die Spalte NULLABLE zurückgegebenen Wert.

SS_DATA_TYPE

tinyint

Der SQL Server-Datentyp, der von erweiterten gespeicherten Prozeduren verwendet wird. Weitere Informationen finden Sie unter Datentypen (Transact-SQL).

1 Weitere Informationen finden Sie in der Microsoft ODBC-Dokumentation.

Berechtigungen

Setzt die SELECT-Berechtigung für das Schema voraus.

Hinweise

sp_columns erfüllt die Anforderungen für Begrenzungsbezeichner. Weitere Informationen finden Sie unter Datenbankbezeichner.

Beispiele

Im folgenden Beispiel werden die Spalteninformationen für die angegebene Tabelle zurückgegeben.

USE AdventureWorks2012;
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';

Siehe auch

Verweis

sp_tables (Transact-SQL)

Gespeicherte Prozeduren für Kataloginformationen (Transact-SQL)

Gespeicherte Systemprozeduren (Transact-SQL)