Partilhar via


Método getColumns (SQLServerDatabaseMetaData)

Baixar driver JDBC

Recupera uma descrição das colunas da tabela disponíveis no catálogo especificado.

Sintaxe

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

Parâmetros

catálogo

Uma String que contém o nome do catálogo.

schema

Uma String que contém o nome do esquema, padrão.

table

Uma String que contém o padrão de nomes da tabela.

Col

Uma cadeia que contém o padrão de nome da coluna.

Valor de retorno

Um objeto SQLServerResultSet .

Exceptions

SQLServerException

Observações

Este método getColumns é especificado pelo método getColumns na interface java.sql.DatabaseMetaData.

O conjunto de resultados devolvido pelo método getColumns conterá a seguinte informação:

Nome Tipo Description
TABLE_CAT String O nome do catálogo.
TABLE_SCHEM String O nome do esquema da tabela.
TABLE_NAME String O nome da tabela.
COLUMN_NAME String O nome da coluna.
DATA_TYPE smallint O tipo de dados SQL do java.sql.Types.
TYPE_NAME String O nome do tipo de dados.
COLUMN_SIZE int A precisão da coluna.
BUFFER_LENGTH smallint Tamanho de transferência dos dados.
DECIMAL_DIGITS smallint A escala da coluna.
NUM_PREC_RADIX smallint A radix da coluna.
ANULÁVEL smallint Indica se a coluna é anulável. Pode ser um dos seguintes valores:

columnNoNulls (0)

columnNullable (1)
COMENTÁRIOS String Os comentários associados à coluna.

Nota: O SQL Server devolve sempre nulo para esta coluna.
COLUMN_DEF String O valor padrão da coluna.
SQL_DATA_TYPE smallint Valor do tipo de dado SQL tal como aparece no campo TYPE do descritor. Esta coluna é igual à coluna DATA_TYPE, exceto para os tipos de dados data-hora e intervalo SQL-92. Esta coluna devolve sempre um valor.
SQL_DATETIME_SUB smallint Código de subtipo para tipos de dados data-hora e intervalo SQL-92. Para outros tipos de dados, esta coluna devolve NULL.
CHAR_OCTET_LENGTH int O número máximo de bytes na coluna.
ORDINAL_POSITION int O índice da coluna dentro da tabela.
IS_NULLABLE String Indica se a coluna permite valores nulos.
SS_IS_SPARSE smallint Se a coluna for uma coluna esparsa, esta tem o valor 1; caso contrário, 0. 1
SS_IS_COLUMN_SET smallint Se a coluna for a coluna column_set esparsa, esta tem o valor 1; caso contrário, 0. 1
SS_IS_COMPUTED smallint Indica se uma coluna num TABLE_TYPE é uma coluna calculada. 1
IS_AUTOINCREMENT String "SIM" se a coluna for incrementada automaticamente. "NÃO" se a coluna não for incrementada automaticamente. "" (cadeia vazia) se o driver não conseguir determinar se a coluna está automaticamente incrementada. 1
SS_UDT_CATALOG_NAME String O nome do catálogo que contém o tipo definido pelo utilizador (UTT). 1
SS_UDT_SCHEMA_NAME String O nome do esquema que contém o tipo definido pelo utilizador (UDT). 1
SS_UDT_ASSEMBLY_TYPE_NAME String O nome totalmente qualificado tipo definido pelo utilizador (UDT). 1
SS_XML_SCHEMACOLLECTION_CATALOG_NAME String O nome do catálogo onde é definido o nome da coleção de esquemas XML. Se o nome do catálogo não for encontrado, esta variável contém uma cadeia vazia. 1
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME String O nome do esquema onde é definido um nome de coleção de esquemas XML. Se o nome do esquema não for encontrado, esta é uma cadeia vazia. 1
SS_XML_SCHEMACOLLECTION_NAME String O nome de uma coleção de esquemas XML. Se o nome não for encontrado, esta é uma cadeia vazia. 1
SS_DATA_TYPE tinyint O tipo de dado SQL Server utilizado por procedimentos armazenados estendidos.

Nota Para mais informações sobre os tipos de dados devolvidos pelo SQL Server, consulte "Tipos de Dados (Transact-SQL)" no SQL Server Books Online.

(1) Esta coluna não estará presente se estiver a ligar-se ao SQL Server 2005 (9.x).

Observação

Para mais informações sobre os dados devolvidos pelo método getColumns, consulte "sp_columns (Transact-SQL)" no SQL Server Books Online.

No Driver JDBC 3.0 do Microsoft SQL Server, verá as seguintes alterações de comportamento em relação às versões anteriores do driver JDBC:

A coluna DATA_TYPE apresenta as seguintes alterações:

Tipo de dados do SQL Server Tipo de Retorno no Driver JDBC 2.0 (ou, se ligado ao SQL Server 2005 (9.x)) e Constante Numérica Associada Tipo de Retorno no Driver JDBC 3.0 quando ligado ao SQL Server 2008 (10.0.x) e versões posteriores
tipo definido pelo utilizador maior que 8 kB LONGVARBINARY (-4) VARBINARY (-3)
geografia LONGVARBINARY (-4) VARBINARY (-3)
geometria LONGVARBINARY (-4) VARBINARY (-3)
varbinary(max) LONGVARBINARY (-4) VARBINARY (-3)
nvarchar (máx.) LONGVARCHAR (-1) ou LONGNVARCHAR (JDBC 4) (-16) VARCHAR (12) ou NVARCHAR (JDBC 4) (-9)
varchar(max) LONGVARCHAR (-1) VARCHAR (12)
time VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) TEMPO (-154)
date VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) DATA (91)
datetime2 VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) CARIMBO TEMPORAL (93)
datetimeoffset VARCHAR (12) ou NVARCHAR (JDBC 4) (-9) microsoft.sql.Types.DATETIMEOFFSET (-155)

A coluna COLUMN_SIZE apresenta as seguintes alterações:

Tipo de dados do SQL Server Tipo de Retorno no Driver JDBC 2.0 Tipo de Retorno no Driver JDBC 3.0
nvarchar (máx.) 1073741823 2147483647 (metadados da base de dados)
XML 1073741823 2147483647 (metadados da base de dados)
tipo definido pelo utilizador menor ou igual a 8 kB 8 kB (conjunto de resultados e metadados de parâmetros) Tamanho real devolvido pelo procedimento armazenado.
time O comprimento em caracteres da representação da cadeia do tipo, assumindo a precisão máxima permitida da componente dos segundos fracionários.
date Igual ao tempo
datetime2 Igual ao tempo
datetimeoffset Igual ao tempo

A coluna BUFFER_LENGTH apresenta a seguinte alteração:

Tipo de dados do SQL Server Tipo de Retorno no Driver JDBC 2.0 Tipo de Retorno no Driver JDBC 3.0
tipo definido pelo utilizador maior que 8 kB 2147483647

A coluna TYPE_NAME apresenta as seguintes alterações:

Tipo de dados do SQL Server Tipo de Retorno no Driver JDBC 2.0 Tipo de Retorno no Driver JDBC 3.0
varchar(max) enviar SMS Varchar
varbinary(max) imagem varbinary

A coluna DECIMAL_DIGITS apresenta as seguintes alterações:

Tipo de SQL Server JDBC Driver 2.0 Driver JDBC 3.0
time null 7 (ou menor, se especificado)
date null null
datetime2 null 7 (ou menor, se especificado)
datetimeoffset null 7 (ou menor, se especificado)

A coluna SQL_DATA_TYPE apresenta as seguintes alterações:

Tipo de dados do SQL Server SQL Server 2008 Valor de Dados no Driver JDBC 2.0 SQL Server 2008 Valor de Dados no Driver JDBC 3.0
varchar(max) -10 -9
nvarchar (máx.) -1 -9
XML -10 -152
tipo definido pelo utilizador menor ou igual a 8 kB -3 -151
tipo definido pelo utilizador maior que 8 kB Não disponível no JDBC Driver 2.0 -151
geografia -4 -151
geometria -4 -151
hierarquid -4 -151
time -9 92
date -9 91
datetime2 -9 93
datetimeoffset -9 -155

Example

O exemplo seguinte demonstra como usar o método getColumns para devolver informação para a tabela Person.Contact na base de dados de exemplo 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 {}  
   }  
}  

Ver também

SQLServerDatabaseMetaData Methods
Membros SQLServerDatabaseMetaData
SQLServerDatabaseMetaData Class