Freigeben über


getColumns-Methode (SQLServerDatabaseMetaData)

Ruft eine Beschreibung der Tabellenspalten ab, die im angegebenen Katalog verfügbar sind.

Syntax

public java.sql.ResultSet getColumns(java.lang.String catalog,
                                     java.lang.String schema,
                                     java.lang.String table,
                                     java.lang.String col)

Parameter

catalog

Ein String mit dem Katalognamen.

schema

Ein String mit dem Schemanamenmuster.

table

Ein String mit dem Tabellennamenmuster.

col

Ein String mit dem Spaltennamenmuster.

Rückgabewert

Ein SQLServerResultSet-Objekt.

Ausnahmen

SQLServerException

Hinweise

Diese getColumns-Methode wird von der getColumns-Methode in der java.sql.DatabaseMetaData-Schnittstelle angegeben.

Das von der getColumns-Methode zurückgegebene Resultset enthält folgende Informationen:

Name Typ Beschreibung

TABLE_CAT

String

Der Name des Katalogs.

TABLE_SCHEM

String

Der Tabellenschemaname.

TABLE_NAME

String

Der Tabellenname.

COLUMN_NAME

String

Der Spaltenname.

DATA_TYPE

smallint

Der SQL-Datentyp aus "java.sql.Types".

TYPE_NAME

String

Der Name des Datentyps.

COLUMN_SIZE

int

Die Genauigkeit der Spalte.

BUFFER_LENGTH

smallint

Die Übertragungsgröße der Daten.

DECIMAL_DIGITS

smallint

Die Dezimalstellen der Spalte.

NUM_PREC_RADIX

smallint

Die Basis der Spalte.

NULLABLE

smallint

Gibt an, ob in der Spalte NULL-Werte zulässig sind. Mögliche Werte:

columnNoNulls (0)

columnNullable (1)

REMARKS

String

Die der Spalte zugeordneten Kommentare.

Hinweis

Für diese Spalte wird von SQL Server immer NULL zurückgegeben.

COLUMN_DEF

String

Der 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 Anzahl von Bytes in der Spalte.

ORDINAL_POSITION

int

Der Index der Spalte innerhalb der Tabelle.

IS_NULLABLE

String

Gibt an, ob in der Spalte NULL-Werte zulässig sind.

SS_IS_SPARSE

smallint

Wenn die Spalte eine Spalte mit geringer Dichte ist, weist sie den Wert VARIANT_TRUE auf, andernfalls den Wert VARIANT_FALSE.

SS_IS_COLUMN_SET

smallint

Wenn die Spalte die Spalte "column_set" mit geringer Dichte ist, weist sie den Wert VARIANT_TRUE, andernfalls den Wert VARIANT_FALSE auf.

SS_IS_COMPUTED

smallint

Zeigt an, ob eine TABLE_TYPE-Spalte eine berechnete Spalte ist.

IS_AUTOINCREMENT

String

"YES", wenn die Spalte automatisch inkrementiert wird. "NO", wenn die Spalte nicht automatisch inkrementiert wird. "" (leere Zeichenfolge), wenn vom Treiber nicht ermittelt werden kann, ob die Spalte automatisch inkrementiert wird.

SS_UDT_CATALOG_NAME

String

Der Name des Katalogs, der den benutzerdefinierten Typ (UDT) enthält.

SS_UDT_SCHEMA_NAME

String

Der Name des Schemas, der den benutzerdefinierten Typ (UDT) enthält.

SS_UDT_ASSEMBLY_TYPE_NAME

String

Der benutzerdefinierte Typ (UDT) für den vollqualifizierten Namen.

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

String

Der Name des Katalogs, in dem eine XML-Schemaauflistung definiert ist. Wenn der Katalogname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge.

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

String

Der Name des Schemas, in dem eine XML-Schemaauflistung definiert ist. Wenn der Schemaname nicht gefunden werden kann, handelt es sich dabei um eine leere Zeichenfolge.

SS_XML_SCHEMACOLLECTION_NAME

String

Name der XML-Schemaauflistung. Wenn der Schemaname nicht gefunden werden kann, handelt es sich dabei um eine leere Zeichenfolge.

SS_DATA_TYPE

tinyint

Der SQL Server-Datentyp, der von erweiterten gespeicherten Prozeduren verwendet wird.

Hinweis   Weitere Informationen zu den Datentypen, die von SQL Server zurückgegeben werden, finden Sie in der SQL Server-Onlinedokumentation unter "Datentypen (Transact-SQL)".

Hinweis

Weitere Informationen zu den Daten, die von der getColumns-Methode zurückgegeben werden, finden Sie in der SQL Server-Onlinedokumentation unter "sp_columns (Transact-SQL)".

Microsoft SQL Server JDBC Driver 3.0 weist im Vergleich zu früheren Versionen von JDBC Driver folgende Verhaltensänderungen auf:

Die DATA_TYPE-Spalte wurde folgendermaßen geändert:

SQL Server-Datentyp Rückgabetyp in JDBC Driver 2.0 und zugeordnete numerische Konstante Rückgabetyp in JDBC Driver 3.0

benutzerdefinierter, 8 KB überschreitender Typ

LONGVARBINARY (-4)

VARBINARY (-3)

geography

LONGVARBINARY (-4)

VARBINARY (-3)

geometry

LONGVARBINARY (-4)

VARBINARY (-3)

varbinary(max)

LONGVARBINARY (-4)

VARBINARY (-3)

nvarchar(max)

LONGVARCHAR (-1) oder LONGNVARCHAR (JDBC 4) (-16)

VARCHAR (12) oder NVARCHAR (JDBC 4) (-9)

varchar(max)

LONGVARCHAR (-1)

VARCHAR (12)

time

VARCHAR (12) oder NVARCHAR (JDBC 4) (-9)

TIME (-154)

date

VARCHAR (12) oder NVARCHAR (JDBC 4) (-9)

DATE (91)

datetime2

VARCHAR (12) oder NVARCHAR (JDBC 4) (-9)

TIMESTAMP (93)

datetimeoffset

VARCHAR (12) oder NVARCHAR (JDBC 4) (-9)

microsoft.sql.Types.DATETIMEOFFSET (-155)

Die COLUMN_SIZE-Spalte wurde folgendermaßen geändert:

SQL Server-Datentyp Rückgabetyp in JDBC Driver 2.0 Rückgabetyp in JDBC Driver 3.0

nvarchar(max)

1073741823

2147483647 (Datenbankmetadaten)

xml

1073741823

2147483647 (Datenbankmetadaten)

benutzerdefinierter Typ mit weniger oder genau 8 KB

8 KB (Resultset- und Parametermetadaten)

Die tatsächliche von der gespeicherten Prozedur zurückgegebene Größe

time

Die Länge (in Zeichen) der Zeichenfolgendarstellung des Typs, wobei die maximal zulässige Genauigkeit der Komponente für Sekundenbruchteile vorausgesetzt wird.

date

entspricht "time"

datetime2

entspricht "time"

datetimeoffset

entspricht "time"

Die BUFFER_LENGTH-Spalte wurde folgendermaßen geändert:

SQL Server-Datentyp Rückgabetyp in JDBC Driver 2.0 Rückgabetyp in JDBC Driver 3.0

benutzerdefinierter, 8 KB überschreitender Typ

2147483647

Die TYPE_NAME-Spalte wurde folgendermaßen geändert:

SQL Server-Datentyp Rückgabetyp in JDBC Driver 2.0 Rückgabetyp in JDBC Driver 3.0

varchar(max)

text

varchar

varbinary(max)

image

varbinary

Die DECIMAL_DIGITS-Spalte wurde folgendermaßen geändert:

SQL Server-Typ JDBC Driver 2.0 JDBC Driver 3.0

time

NULL

7 (oder – falls angegeben – kleiner)

date

NULL

NULL

datetime2

NULL

7 (oder – falls angegeben – kleiner)

datetimeoffset

NULL

7 (oder – falls angegeben – kleiner)

Die SQL_DATA_TYPE-Spalte wurde folgendermaßen geändert:

SQL Server-Datentyp SQL Server 2008-Datenwert in JDBC Driver 2.0 SQL Server 2008-Datenwert in JDBC Driver 3.0

varchar(max)

-10

-9

nvarchar(max)

-1

-9

xml

-10

-152

benutzerdefinierter Typ mit weniger oder genau 8 KB

-3

-151

benutzerdefinierter, 8 KB überschreitender Typ

Nicht verfügbar in JDBC Driver 2.0

-151

geography

-4

-151

geometry

-4

-151

hierarchyid

-4

-151

time

-9

92

date

-9

91

datetime2

-9

93

datetimeoffset

-9

-155

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie mithilfe der getColumns-Methode Informationen für die Spalte "FirstName" der Tabelle "Person.Contact" aus der SQL Server 2005 AdventureWorks-Beispieldatenbank zurückgegeben werden können.

public static void executeGetColumns(Connection con) {
   try {
      DatabaseMetaData dbmd = con.getMetaData();
      ResultSet rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");
      ResultSetMetaData rsmd = rs.getMetaData();

      // Display the result set data.
      int cols = rsmd.getColumnCount();
      while(rs.next()) {
         for (int i = 1; i <= cols; i++) {
            System.out.println(rs.getString(i));
         }
      }
      rs.close();
   } 

   catch (Exception e) {
      e.printStackTrace();
   }
}

Siehe auch

Verweis

SQLServerDatabaseMetaData-Klasse

Konzepte

SQLServerDatabaseMetaData-Methoden
SQLServerDatabaseMetaData-Elemente