Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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-Objekt, das den Katalognamen enthält.
schema
Ein String-Objekt, das das Schemanamenmuster enthält.
Tabelle
Ein String-Objekt, das das Tabellennamenmuster enthält.
col
Ein String-Objekt, das das Spaltennamensmuster enthält.
Rückgabewert
Ein SQLServerResultSet-Objekt.
Ausnahmen
Bemerkungen
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 die folgenden Informationen:
Name | Typ | BESCHREIBUNG |
---|---|---|
TABLE_CAT | String | Der Katalogname. |
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 zugelassen sind. Es kann sich um einen der folgenden Werte handeln: columnNoNulls (0) columnNullable (1) |
ANMERKUNGEN | String | Die der Spalte zugeordneten Kommentare. Hinweis: SQL Server gibt für diese Spalte immer NULL zurück. |
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 Spalte DATA_TYPE mit Ausnahme der Datentypen datetime und interval (SQL 92). Diese Spalte gibt immer einen Wert zurück. |
SQL_DATETIME_SUB | smallint | Untertypcode für die Datentypen datetime und interval (SQL 92). 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 | Besitzt den Wert 1, wenn die Spalte eine Sparsespalte ist, andernfalls 0.1 |
SS_IS_COLUMN_SET | smallint | Besitzt den Wert 1, wenn die Spalte die column_set-Sparsespalte ist, andernfalls 0. 1 |
SS_IS_COMPUTED | smallint | Zeigt an, ob eine TABLE_TYPE-Spalte eine berechnete Spalte ist. 1 |
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. 1 |
SS_UDT_CATALOG_NAME | String | Der Name des Katalogs, der den benutzerdefinierten Typ (UDT) enthält. 1 |
SS_UDT_SCHEMA_NAME | String | Der Name des Schemas, der den benutzerdefinierten Typ (UDT) enthält. 1 |
SS_UDT_ASSEMBLY_TYPE_NAME | String | Der benutzerdefinierte Typ (UDT) für den vollqualifizierten Namen. 1 |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME | String | Der Name des Katalogs, in dem ein XML-Schemasammlungsname definiert ist. Wenn der Katalogname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge. 1 |
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. 1 |
SS_XML_SCHEMACOLLECTION_NAME | String | Name der XML-Schemaauflistung. Wenn der Name nicht gefunden werden kann, handelt es sich dabei um eine leere Zeichenfolge. 1 |
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)“. |
(1) Diese Spalte ist nicht vorhanden, wenn Sie eine Verbindung mit SQL Server 2005 (9.x) herstellen.
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)“.
Der Microsoft SQL Server JDBC-Treiber 3.0 weist die folgenden Behavior Changes im Vergleich zu früheren Versionen auf:
Die DATA_TYPE-Spalte wurde folgendermaßen geändert:
SQL Server-Datentyp | Rückgabetyp des JDBC-Treibers 2.0 (oder bei einer Verbindung mit SQL Server 2005 (9.x)) und zugeordnete numerische Konstante | Rückgabetyp des JDBC-Treibers 3.0 bei Verbindung mit SQL Server 2008 (10.0.x) und höheren Versionen |
---|---|---|
benutzerdefinierter, 8 KB überschreitender Typ | LONGVARBINARY (-4) | VARBINARY (-3) |
geography | LONGVARBINARY (-4) | VARBINARY (-3) |
Geometrie | 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 im JDBC-Treiber 2.0 | SQL Server 2008-Datenwert im JDBC-Treiber 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 |
Geometrie | –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 Tabelle „Person.Contact“ aus der AdventureWorks2022-Beispieldatenbank zurückgegeben werden können.
import java.sql.*;
public class c1 {
public static void main(String[] args) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedsecurity=true";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(connectionUrl);
DatabaseMetaData dbmd = con.getMetaData();
rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");
ResultSet r = dbmd.getColumns(null, null, "Contact", null);
ResultSetMetaData rm = r.getMetaData();
int noofcols = rm.getColumnCount();
if (r.next())
for (int i = 0 ; i < noofcols ; i++ )
System.out.println(rm.getColumnName( i + 1 ) + ": \t\t" + r.getString( i + 1 ));
}
catch (Exception e) {}
finally {}
}
}
Weitere Informationen
SQLServerDatabaseMetaData-Methoden
SQLServerDatabaseMetaData-Elemente
SQLServerDatabaseMetaData-Klasse