Delen via


methode getColumns (SQLServerDatabaseMetaData)

JDBC-stuurprogramma downloaden

Haalt een beschrijving op van de tabelkolommen die beschikbaar zijn in de opgegeven catalogus.

Syntaxis

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

Parameterwaarden

catalogus

Een string die de catalogusnaam bevat.

schema

Een string die het schemanaampatroon bevat.

table

Een string die het patroon van de tabelnaam bevat.

Col

Een string die het kolomnaampatroon bevat.

Retourwaarde

Een SQLServerResultSet-object .

Exceptions

SQLServerException

Opmerkingen

Deze getColumns-methode wordt gespecificeerd door de getColumns-methode in de java.sql.DatabaseMetaData-interface.

De resultaatset die door de getColumns-methode wordt geretourneerd, bevat de volgende informatie:

Naam Typologie Description
TABLE_CAT String De catalogusnaam.
TABLE_SCHEM String De naam van het tabelschema.
TABLE_NAME String De naam van de tabel.
COLUMN_NAME String De kolomnaam.
DATA_TYPE smallint Het SQL-datatype van java.sql.Types.
TYPE_NAME String De naam van het datatype.
COLUMN_SIZE int De precisie van de kolom.
BUFFER_LENGTH smallint Overdrachtsgrootte van de data.
DECIMAL_DIGITS smallint De schaal van de zuil.
NUM_PREC_RADIX smallint De radix van de kolom.
ONGELDIG smallint Geeft aan of de kolom nulleerbaar is. Dit kan een van de volgende waarden zijn:

columnNoNulls (0)

kolomNullable (1)
OPMERKINGEN String De opmerkingen die bij de column horen.

Notitie: SQL Server geeft altijd null terug voor deze kolom.
COLUMN_DEF String De standaardwaarde van de kolom.
SQL_DATA_TYPE smallint Waarde van het SQL-datatype zoals het verschijnt in het TYPE-veld van de descriptor. Deze kolom is hetzelfde als de DATA_TYPE kolom, behalve voor de datatypes datetime en SQL-92 intervalgegevens. Deze kolom geeft altijd een waarde terug.
SQL_DATETIME_SUB smallint Subtypecode voor datetime- en SQL-92-intervaldatatypes. Voor andere datatypen geeft deze kolom NULL terug.
CHAR_OCTET_LENGTH int Het maximale aantal bytes in de kolom.
ORDINAL_POSITION int De index van de kolom binnen de tabel.
IS_NULLABLE String Geeft aan of de kolom nullwaarden toestaat.
SS_IS_SPARSE smallint Als de kolom een dunne kolom is, heeft deze de waarde 1; anders 0. 1
SS_IS_COLUMN_SET smallint Als de kolom de schaarse column_set kolom is, heeft deze de waarde 1; anders 0. 1
SS_IS_COMPUTED smallint Geeft aan of een kolom in een TABLE_TYPE een berekende kolom is. 1
IS_AUTOINCREMENT String "JA" als de kolom automatisch wordt verhoogd. "NEE" als de kolom niet automatisch wordt verhoogd. "" (lege string) als de driver niet kan bepalen of de kolom automatisch wordt verhoogd. 1
SS_UDT_CATALOG_NAME String De naam van de catalogus die het door de gebruiker gedefinieerde type (UDT) bevat. 1
SS_UDT_SCHEMA_NAME String De naam van het schema dat het door de gebruiker gedefinieerde type (UDT) bevat. 1
SS_UDT_ASSEMBLY_TYPE_NAME String De volledig gekwalificeerde naam door de gebruiker gedefinieerde type (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String De naam van de catalogus waarin een naam van een XML-schemacollectie is gedefinieerd. Als de catalogusnaam niet gevonden kan worden, bevat deze variabele een lege string. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String De naam van het schema waarin een naam van een XML-schemacollectie is gedefinieerd. Als de schemanaam niet gevonden kan worden, is dit een lege string. 1
SS_XML_SCHEMACOLLECTION_NAME String De naam van een XML-schemacollectie. Als de naam niet gevonden kan worden, is dit een lege string. 1
SS_DATA_TYPE tinyint Het SQL Server-datatype dat wordt gebruikt door uitgebreide opgeslagen procedures.

Notitie Voor meer informatie over de datatypes die door SQL Server worden teruggegeven, zie "Data Types (Transact-SQL)" in SQL Server Books Online.

(1) Deze kolom zal niet aanwezig zijn als je verbinding maakt met SQL Server 2005 (9.x).

Opmerking

Voor meer informatie over de gegevens die door de getColumns-methode worden teruggegeven, zie "sp_columns (Transact-SQL)" in SQL Server Books Online.

In de Microsoft SQL Server JDBC Driver 3.0 zie je de volgende gedragsveranderingen ten opzichte van eerdere versies van de JDBC-driver:

De kolom DATA_TYPE kent de volgende wijzigingen:

Gegevenstype SQL Server Retourtype in JDBC Driver 2.0 (of, indien verbonden met SQL Server 2005 (9.x)) en bijbehorende numerieke constante Return Type in JDBC Driver 3.0 wanneer verbonden met SQL Server 2008 (10.0.x) en latere versies
door de gebruiker gedefinieerde type groter dan 8 kB LONGVARBINARY (-4) VARBINARY (-3)
geografie LONGVARBINARY (-4) VARBINARY (-3)
meetkunde LONGVARBINARY (-4) VARBINARY (-3)
varbinary(max) LONGVARBINARY (-4) VARBINARY (-3)
nvarchar(max) LONGVARCHAR (-1) of LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) of NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) of NVARCHAR (JDBC 4) (-9) TIJD (-154)
date VARCHAR (12) of NVARCHAR (JDBC 4) (-9) DATUM (91)
datetime2 VARCHAR (12) of NVARCHAR (JDBC 4) (-9) TIJDSTEMPEL (93)
datetimeoffset VARCHAR (12) of NVARCHAR (JDBC 4) (-9) microsoft.sql.Type.DATETIMEOFFSET (-155)

De kolom COLUMN_SIZE heeft de volgende wijzigingen:

Gegevenstype SQL Server Retourtype in JDBC Driver 2.0 Retourtype in JDBC Driver 3.0
nvarchar(max) 1073741823 2147483647 (databasemetadata)
xml 1073741823 2147483647 (databasemetadata)
door de gebruiker gedefinieerd type kleiner dan of gelijk aan 8 kB 8 kB (metadata van resultatenset en parameters) Werkelijke grootte die door de opgeslagen procedure wordt teruggegeven.
time De lengte in karakters van de string representatie van het type, uitgaande van de maximaal toegestane precisie van de component van de fractieseconden.
date hetzelfde als tijd
datetime2 hetzelfde als tijd
datetimeoffset hetzelfde als tijd

De kolom BUFFER_LENGTH heeft de volgende wijziging:

Gegevenstype SQL Server Retourtype in JDBC Driver 2.0 Retourtype in JDBC Driver 3.0
door de gebruiker gedefinieerde type groter dan 8 kB 2147483647

De kolom TYPE_NAME heeft de volgende wijzigingen:

Gegevenstype SQL Server Retourtype in JDBC Driver 2.0 Retourtype in JDBC Driver 3.0
varchar(max) Tekst varchar
varbinary(max) image varbinary

De kolom DECIMAL_DIGITS heeft de volgende wijzigingen:

SQL Server Type JDBC Driver 2.0 JDBC Driver 3.0
time Nul 7 (of kleiner indien gespecificeerd)
date Nul Nul
datetime2 Nul 7 (of kleiner indien gespecificeerd)
datetimeoffset Nul 7 (of kleiner indien gespecificeerd)

De kolom SQL_DATA_TYPE heeft de volgende wijzigingen:

Gegevenstype SQL Server SQL Server 2008 Gegevenswaarde in JDBC Driver 2.0 SQL Server 2008 Data Value in JDBC Driver 3.0
varchar(max) -10 -9
nvarchar(max) -1 -9
xml -10 -152
door de gebruiker gedefinieerd type kleiner dan of gelijk aan 8 kB -3 -151
door de gebruiker gedefinieerde type groter dan 8 kB Niet beschikbaar in JDBC Driver 2.0 -151
geografie -4 -151
meetkunde -4 -151
hiƫrarchiid -4 -151
time -9 92
date -9 91
datetime2 -9 93
datetimeoffset -9 -155

Example

Het volgende voorbeeld laat zien hoe je de getColumns-methode gebruikt om informatie terug te geven voor de Person.Contact-tabel in de voorbeelddatabase AdventureWorks2025.

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 {}  
   }  
}  

Zie ook

SQLServerDatabaseMetaData-methoden
SQLServerDatabaseMetaData-leden
SQLServerDatabaseMetaData-klasse