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, mit dem Kataloginformationen zurückgegeben werden. object kann eine Tabelle, eine Sicht oder ein anderes Objekt mit Spalten sein (z. B. Tabellenwertfunktionen). object ist nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

  • [ @table_owner=] owner
    Der Objektbesitzer des Objekts, mit dem Kataloginformationen zurückgegeben werden. 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.

    Besitzt der aktuelle Benutzer ein Objekt mit dem angegebenen Namen, werden die Spalten dieses Objekts zurückgegeben. Wenn owner nicht angegeben wird und der aktuelle Benutzer kein Objekt mit dem angegebenen Wert für object besitzt, sucht sp_columns nach einem Objekt mit dem angegebenen object, dessen Besitzer der Datenbankbesitzer ist. Sofern ein solches Objekt vorhanden ist, werden die Spalten dieses Objekts 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 Benennung für Objekte. (qualifier**.owner.**name). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei einigen Produkten stellt sie den Servernamen der Datenbankumgebung des Objekts dar.

  • [ @column_name=] column
    Eine einzelne Spalte, die verwendet wird, wenn nur eine Spalte mit Kataloginformationen gewünscht wird. column ist vom Datentyp nvarchar(384) und hat den Standardwert 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
    Ist 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

Der Name des Objektqualifizierers. Dieses Feld kann den Wert NULL aufweisen.

TABLE_OWNER

sysname

Der Name des Objektbesitzers. Dieses Feld gibt immer einen Wert zurück.

TABLE_NAME

sysname

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

COLUMN_NAME

sysname

Der Spaltenname für jede Spalte der zurückgegebenen 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 Server 2008 und SQL Server 2005 unterscheiden sich von SQL Server 2000 darin, wie SQL-Ausdrücke in den Katalogmetadaten decodiert und gespeichert werden. Die Semantik des decodierten Ausdrucks entspricht dem ursprünglichen Text. Es gibt jedoch keine syntaktische Garantie. Leerzeichen werden beispielsweise aus dem decodierten Ausdruck entfernt. Weitere Informationen finden Sie unter Verhaltensänderungen von Datenbankmodul-Funktionen in SQL Server 2008 R2.

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 Ordnungsposition 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 begrenzte Bezeichner. Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).

Beispiele

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

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