sp_columns_ex (Transact-SQL)

Gibt die Spalteninformationen (eine Zeile pro Spalte) für die angegebenen Verbindungsservertabellen zurück. sp_columns_ex gibt Spalteninformationen nur für die angegebene Spalte zurück, wenn column angegeben wird.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_columns_ex [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_catalog' ] 
     [ , [ @column_name = ] 'column' ] 
     [ , [ @ODBCVer = ] 'ODBCVer' ]

Argumente

  • [ @table_server = ] 'table_server'
    Der Name des Verbindungsservers, für den Spalteninformationen zurückgegeben werden sollen. table_server ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @table_name = ] 'table_name'
    Der Name der Tabelle, für die Spalteninformationen zurückgegeben werden sollen. table_name ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @table_schema = ] 'table_schema'
    Der Schemaname der Tabelle, für die Spalteninformationen zurückgegeben werden sollen. table_schema ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @table_catalog = ] 'table_catalog'
    Der Katalogname der Tabelle, für die Spalteninformationen zurückgegeben werden sollen. table_catalog ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @column_name = ] 'column'
    Der Name der Datenbankspalte, für die Informationen bereitgestellt werden sollen. column ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @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

Spaltenname

Datentyp

Beschreibung

TABLE_CAT

sysname

Der Name des Qualifizierers für die Tabelle oder Sicht. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen (qualifier.owner.name). In SQL Server 2008 und SQL Server 2005 stellt diese Spalte den Datenbanknamen dar. Bei anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar. Dieses Feld kann den Wert NULL annehmen.

TABLE_SCHEM

sysname

Der Name des Besitzers der Tabelle oder Sicht. 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

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

COLUMN_NAME

sysname

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

DATA_TYPE

smallint

Ein Wert für eine ganze Zahl, der den ODBC-Datentypbezeichnern entspricht. 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

varchar(13)

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

COLUMN_SIZE

int

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

BUFFER_LENGTH

int

Die Übertragungsgröße der Daten.1

DECIMAL_DIGITS

smallint

Die Anzahl der Ziffern rechts vom Dezimalzeichen.

NUM_PREC_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

varchar(254)

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 der Datentypen datetime und SQL-92 interval. Diese Spalte gibt immer einen Wert zurück.

SQL_DATETIME_SUB

smallint

Untertypcode für die Datentypen datetime und SQL-92 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 der Tabelle. Die erste Spalte in der Tabelle ist "1". Diese Spalte gibt immer 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 ist ein anderer als der für die NULLABLE-Spalte zurückgegebene Wert.

SS_DATA_TYPE

tinyint

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

Weitere Informationen finden Sie in der Microsoft ODBC-Dokumentation.

Hinweise

sp_columns_ex wird ausgeführt, indem das COLUMNS-Rowset der IDBSchemaRowset-Schnittstelle des OLE DB-Anbieters abgefragt wird, der table_server entspricht. Die Parameter table_name, table_schema, table_catalog und column werden an diese Schnittstelle übergeben, um die zurückgegebenen Zeilen zu beschränken.

sp_columns_ex gibt ein leeres Resultset zurück, wenn der OLE DB-Anbieter des angegebenen Verbindungsservers das COLUMNS-Rowset der IDBSchemaRowset-Schnittstelle nicht unterstützt.

sp_columns_ex erfüllt die Anforderungen für begrenzte Bezeichner. Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).

Berechtigungen

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

Beispiele

Im folgenden Beispiel wird der Datentyp der JobTitle-Spalte der HumanResources.Employee-Tabelle in der AdventureWorks2008R2-Datenbank auf dem Seattle1-Verbindungsserver zurückgegeben.

EXEC sp_columns_ex 'Seattle1', 
   'Employee', 
   'HumanResources', 
   'AdventureWorks2008R2', 
   'JobTitle';