Dela via


getColumns-metoden (SQLServerDatabaseMetaData)

Ladda ned JDBC-drivrutin

Hämtar en beskrivning av tabellkolumnerna som finns tillgängliga i den angivna katalogen.

Syntax

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

Parameterar

katalog

En sträng som innehåller katalognamnet.

schema

En sträng som innehåller schemanamnsmönstret.

table

En sträng som innehåller mönstret för tabellnamn.

Col

En sträng som innehåller kolumnnamnsmönstret.

Returvärde

Ett SQLServerResultSet-objekt .

Exceptions

SQLServerException

Anmärkningar

Denna getColumns-metod specificeras av getColumns-metoden i gränssnittet java.sql.DatabaseMetaData.

Resultatmängden som getColumns-metoden returnerar kommer att innehålla följande information:

Namn Typ Description
TABLE_CAT String Katalognamnet.
TABLE_SCHEM String Namnet på tabellschemat.
TABLE_NAME String Tabellnamnet.
COLUMN_NAME String Kolumnens namn.
DATATYP smallint SQL-datatypen från java.sql.Types.
TYPE_NAME String Namnet på datatypen.
COLUMN_SIZE int Kolumnens precision.
BUFFER_LENGTH smallint Överför datastorleken.
DECIMAL_DIGITS smallint Kolumnens skala.
NUM_PREC_RADIX smallint Pelarens radix.
NULLBAR smallint Indikerar om kolumnen är nollbar. Det kan vara något av följande värden:

columnNoNulls (0)

kolumnNullbar (1)
ANMÄRKNINGAR String Kommentarerna kopplade till kolumnen.

Not: SQL Server returnerar alltid null för denna kolumn.
COLUMN_DEF String Standardvärdet för kolumnen.
SQL_DATA_TYPE smallint Värdet på SQL-datatypen som den visas i fältet TYPE i deskriptorn. Denna kolumn är densamma som DATA_TYPE kolumnen, förutom datatyperna datetime och SQL-92-intervallet. Denna kolumn returnerar alltid ett värde.
SQL_DATETIME_SUB smallint Subtypkod för datetime- och SQL-92-intervalldatatyper. För andra datatyper returnerar denna kolumn NULL.
CHAR_OCTET_LENGTH int Det maximala antalet bytes i kolumnen.
ORDINAL_POSITION int Indexet för kolumnen i tabellen.
IS_NULLABLE String Indikerar om kolumnen tillåter nollvärden.
SS_IS_SPARSE smallint Om kolumnen är en gles kolumn har denna värdet 1; annars 0. 1
SS_IS_COLUMN_SET smallint Om kolumnen är den gles column_set kolumnen har denna värdet 1; annars 0. 1
SS_IS_COMPUTED smallint Indikerar om en kolumn i en TABLE_TYPE är en beräknad kolumn. 1
IS_AUTOINCREMENT String "JA" om kolumnen är automatiskt inkrement. "NEJ" om kolumnen inte är automatiskt inkrement. "" (tomt sträng) om drivrutinen inte kan avgöra om kolumnen automatiskt ökar. 1
SS_UDT_CATALOG_NAME String Namnet på katalogen som innehåller den användardefinierade typen (UDT). 1
SS_UDT_SCHEMA_NAME String Namnet på schemat som innehåller den användardefinierade typen (UDT). 1
SS_UDT_ASSEMBLY_TYPE_NAME String Det fullt kvalificerade namnet användardefinierad typ (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String Namnet på katalogen där namnet på en XML-schemasamling definieras. Om katalognamnet inte kan hittas innehåller denna variabel en tom sträng. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String Namnet på schemat där namnet på en XML-schemasamling definieras. Om schemanamnet inte kan hittas är detta en tom sträng. 1
SS_XML_SCHEMACOLLECTION_NAME String Namnet på en XML-schemasamling. Om namnet inte kan hittas är detta en tom sträng. 1
SS_DATA_TYPE tinyint SQL Server-datatypen som används av utökade lagrade procedurer.

Not För mer information om de datatyper som returneras av SQL Server, se "Data Types (Transact-SQL)" i SQL Server Books Online.

(1) Denna kolumn kommer inte att finnas om du ansluter till SQL Server 2005 (9.x).

Anmärkning

För mer information om data som returneras av getColumns-metoden, se "sp_columns (Transact-SQL)" i SQL Server Books Online.

I Microsoft SQL Server JDBC Driver 3.0 kommer du att se följande beteendeförändringar från tidigare versioner av JDBC-drivrutinen:

Kolumnen DATA_TYPE har följande ändringar:

SQL Server datatyp Returtyp i JDBC-drivrutin 2.0 (eller, om ansluten till SQL Server 2005 (9.x)) och tillhörande numerisk konstant Return Type i JDBC Driver 3.0 när den är ansluten till SQL Server 2008 (10.0.x) och senare versioner
användardefinierad typ större än 8 kB LONGVARBINÄR (-4) VARBINARY (-3)
geografi LONGVARBINÄR (-4) VARBINARY (-3)
geometri LONGVARBINÄR (-4) VARBINARY (-3)
varbinary(max) LONGVARBINÄR (-4) VARBINARY (-3)
nvarchar(max) LONGVARCHAR (-1) eller LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) eller NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) eller NVARCHAR (JDBC 4) (-9) TID (-154)
date VARCHAR (12) eller NVARCHAR (JDBC 4) (-9) DATUM (91)
datetime2 VARCHAR (12) eller NVARCHAR (JDBC 4) (-9) TIDSSTÄMPEL (93)
datetimeoffset VARCHAR (12) eller NVARCHAR (JDBC 4) (-9) microsoft.sql.Typer.DATETIMEOFFSET (-155)

Kolumnen COLUMN_SIZE har följande ändringar:

SQL Server datatyp Återkastningstyp i JDBC Driver 2.0 Återkastningstyp i JDBC Driver 3.0
nvarchar(max) 1073741823 2147483647 (databasmetadata)
xml 1073741823 2147483647 (databasmetadata)
användardefinierad typ mindre än eller lika med 8 kB 8 kB (resultatmängd och parametermetadata) Faktisk storlek som återges av den lagrade proceduren.
time Längden i tecken för strängrepresentationen av typen, med antagandet av den maximalt tillåtna precisionen för bråkdelssekunders komponent.
date samma som tiden
datetime2 samma som tiden
datetimeoffset samma som tiden

Kolumnen BUFFER_LENGTH har följande förändring:

SQL Server datatyp Återkastningstyp i JDBC Driver 2.0 Återkastningstyp i JDBC Driver 3.0
användardefinierad typ större än 8 kB 2147483647

Kolumnen TYPE_NAME har följande ändringar:

SQL Server datatyp Återkastningstyp i JDBC Driver 2.0 Återkastningstyp i JDBC Driver 3.0
varchar(max) texten varchar
varbinary(max) image varbinary

Kolumnen DECIMAL_DIGITS har följande ändringar:

SQL Server-typ JDBC Driver 2.0 JDBC Driver 3.0
time noll 7 (eller mindre om specificerat)
date noll noll
datetime2 noll 7 (eller mindre om specificerat)
datetimeoffset noll 7 (eller mindre om specificerat)

Kolumnen SQL_DATA_TYPE har följande förändringar:

SQL Server datatyp SQL Server 2008 Datavärde i JDBC Driver 2.0 SQL Server 2008 Datavärde i JDBC Driver 3.0
varchar(max) -10 -9
nvarchar(max) -1 -9
xml -10 -152
användardefinierad typ mindre än eller lika med 8 kB -3 -151
användardefinierad typ större än 8 kB Ej tillgänglig i JDBC Driver 2.0 -151
geografi -4 -151
geometri -4 -151
hierarki -4 -151
time -9 92
date -9 91
datetime2 -9 93
datetimeoffset -9 -155

Example

Följande exempel visar hur man använder getColumns-metoden för att returnera information för Person.Contact-tabellen i exempeldatabasen 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 {}  
   }  
}  

Se även

SQLServerDatabaseMetaData-metoder
SQLServerDatabaseMetaData-medlemmar
SQLServerDatabaseMetaData-klassen