Freigeben über


sp_columns (Transact-SQL)

Aktualisiert: 17. Juli 2006

Gibt Spalteninformationen für die angegebenen in der aktuellen Umgebung abfragbaren Tabellen oder Sichten 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 der Tabelle oder Sicht, mit der Kataloginformationen zurückgegeben werden. object_name ist vom Datentyp nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.
  • [ @table_owner****=**] owner
    Der Objektbesitzer der Tabelle oder Sicht, mit der 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, werden die Standardregeln für die Sichtbarkeit von Tabellen bzw. Sichten des zugrunde liegenden DBMS angewendet.

    Wenn der aktuelle Benutzer eine Tabelle oder Sicht mit dem angegebenen Namen besitzt, werden in SQL Server 2005 die Spalten dieser Tabelle zurückgegeben. Wenn owner nicht angegeben wird und der aktuelle Benutzer keine Tabelle oder Sicht mit dem angegebenen object besitzt, sucht sp_columns nach einer Tabelle oder Sicht mit dem angegebenen Wert für object, die im Besitz des Datenbankbesitzers ist. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.

  • [ @table_qualifier****=] qualifier
    Der Name des Tabellen- oder Sichtqualifizierers. qualifier ist vom Datentyp sysname und hat den Standardwert 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.
  • [ @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
    Die verwendete ODBC-Version. ODBCVer ist vom Datentyp int und hat den Standardwert 2. Dieser gibt ODBC, Version 2.0, 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 Qualifizierers für die Tabelle oder Sicht. Dieses Feld kann den Wert NULL annehmen.

TABLE_OWNER

sysname

Der Name des Besitzers der Tabelle oder Sicht. Dieses Feld gibt immer einen Wert zurück.

TABLE_NAME

sysname

Der Name der Tabelle oder Sicht. Dieses Feld gibt immer einen Wert zurück.

COLUMN_NAME

sysname

Der Spaltenname für jede Spalte der mit TABLE_NAME zurückgegebenen Tabelle. 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 2005 unterscheidet 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-Features in SQL Server 2005.

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 Bytes) 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 der Tabelle. Die erste Spalte in der Tabelle ist 1. Diese Spalte gibt stets einen Wert zurück.

IS_NULLABLE

varchar(254)

Die NULL-Zulässigkeit einer Spalte innerhalb der Tabelle. 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

Erfordert die SELECT-Berechtigung für das Schema.

Beispiele

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

USE AdventureWorks
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)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

17. Juli 2006

Neuer Inhalt:
  • Der COLUMN_DEF-Spalte wurden Informationen zum Speichern von SQL-Ausdrücken in SQL Server 2005 hinzugefügt.