Compartir a través de


Método getColumns (SQLServerDatabaseMetaData)

Recupera una descripción de las columnas de la tabla que están disponibles en el catálogo especificado.

Sintaxis

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

Parámetros

catalog

Un String que contiene el nombre del catálogo.

schema

Un String que contiene el modelo de nombre del esquema.

table

Un String que contiene el modelo de nombre de la tabla.

col

Un String que contiene el modelo de nombre de la columna.

Valor devuelto

Un objeto SQLServerResultSet.

Excepciones

SQLServerException

Notas

El método getColumns especifica este método getColumns en la interfaz java.sql.DatabaseMetaData.

El conjunto de resultados devuelto por el método getColumns contendrá la siguiente información:

Nombre Type Descripción

TABLE_CAT

String

Nombre del catálogo.

TABLE_SCHEM

String

Nombre del esquema de tabla.

TABLE_NAME

String

Nombre de la tabla.

COLUMN_NAME

String

Nombre de columna.

DATA_TYPE

smallint

Tipo de datos SQL de java.sql.Types.

TYPE_NAME

String

Nombre del tipo de datos.

COLUMN_SIZE

int

Precisión de la columna.

BUFFER_LENGTH

smallint

Tamaño de transferencia de los datos.

DECIMAL_DIGITS

smallint

Escala de la columna.

NUM_PREC_RADIX

smallint

Base de la columna.

NULLABLE

smallint

Indica si la columna acepta valores NULL. Puede ser uno de los siguientes valores:

columnNoNulls (0)

columnNullable (1)

REMARKS

String

Comentarios asociados con la columna.

Nota

SQL Server siempre devuelve el valor NULL para esta columna.

COLUMN_DEF

String

Valor predeterminado de la columna.

SQL_DATA_TYPE

smallint

Valor del tipo de datos SQL tal como aparece en el campo TYPE del descriptor. Esta columna es igual que la columna DATA_TYPE, salvo por los tipos de datos datetime e interval de SQL-92. Esta columna siempre devuelve un valor.

SQL_DATETIME_SUB

smallint

Código de subtipo para los tipos de datos interval de SQL-92 y datetime. Para otros tipos de datos, esta columna devuelve NULL.

CHAR_OCTET_LENGTH

int

Número máximo de bytes en la columna.

ORDINAL_POSITION

int

Índice de la columna en la tabla.

IS_NULLABLE

String

Indica si la columna admite valores NULL.

SS_IS_SPARSE

smallint

Si la columna es una columna dispersa, esto tiene el valor VARIANT_TRUE; de lo contrario, VARIANT_FALSE.

SS_IS_COLUMN_SET

smallint

Si la columna es la columna column_set dispersa, esto tiene el valor VARIANT_TRUE; de lo contrario, VARIANT_FALSE.

SS_IS_COMPUTED

smallint

Indica si una columna en un TABLE_TYPE es una columna calculada.

IS_AUTOINCREMENT

String

Es "SÍ" si la columna se incrementa automáticamente. Es "NO" si la columna no se incrementa automáticamente. Es "" (cadena vacía) si el controlador no puede determinar si la columna se incrementa automáticamente.

SS_UDT_CATALOG_NAME

String

Nombre del catálogo que contiene el tipo definido por el usuario (UDT).

SS_UDT_SCHEMA_NAME

String

Nombre del esquema que contiene el tipo definido por el usuario (UDT).

SS_UDT_ASSEMBLY_TYPE_NAME

String

Tipo definido por el usuario (UDT) del nombre completo.

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

String

Nombre del catálogo donde se define el nombre de una colección de esquemas XML. Si no se encuentra el nombre de catálogo, esta variable contiene una cadena vacía.

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

String

Nombre del esquema donde se define el nombre de una colección de esquemas XML. Si no se puede encontrar el nombre de esquema, esta cadena estará vacía.

SS_XML_SCHEMACOLLECTION_NAME

String

Nombre de una colección de esquemas XML. Si no se puede encontrar el nombre, esta cadena estará vacía.

SS_DATA_TYPE

tinyint

Tipo de datos de SQL Server que utilizan los procedimientos almacenados extendidos.

Nota Para obtener más información sobre los tipos de datos que ha devuelto SQL Server, vea "Tipos de datos (Transact-SQL)" en los Libros en pantalla de SQL Server.

Nota

Para obtener más información sobre los datos que devuelve el método getColumns, vea "sp_columns (Transact-SQL)" en los Libros en pantalla de SQL Server.

En el controlador JDBC 3.0 de Microsoft SQL Server, observará que existen los siguientes cambios de comportamiento con respecto a las versiones anteriores del controlador JDBC:

La columna DATA_TYPE tiene los siguientes cambios:

Tipo de datos de SQL Server Tipo devuelto en el controlador JDBC 2.0 y la constante numérica asociada Tipo devuelto en el controlador JDBC 3.0

tipo definido por el usuario mayor que 8 KB

LONGVARBINARY (-4)

VARBINARY (-3)

geografía

LONGVARBINARY (-4)

VARBINARY (-3)

geometría

LONGVARBINARY (-4)

VARBINARY (-3)

varbinary(max)

LONGVARBINARY (-4)

VARBINARY (-3)

nvarchar(max)

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

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

varchar(max)

LONGVARCHAR (-1)

VARCHAR (12)

time

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

TIME (-154)

date

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

DATE (91)

datetime2

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

TIMESTAMP (93)

datetimeoffset

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

microsoft.sql.Types.DATETIMEOFFSET (-155)

La columna COLUMN_SIZE tiene los siguientes cambios:

Tipo de datos de SQL Server Tipo devuelto en el controlador JDBC 2.0 Tipo devuelto en el controlador JDBC 3.0

nvarchar(max)

1073741823

2147483647 (metadatos de base de datos)

xml

1073741823

2147483647 (metadatos de base de datos)

tipo definido por el usuario menor o igual que 8 KB

8 KB (conjunto de resultados y metadatos de parámetro)

Tamaño real que devuelve el procedimiento almacenado.

time

La longitud en caracteres de la representación de cadena del tipo (suponiendo la precisión máxima permitida del componente de fracciones de segundo).

date

igual que time

datetime2

igual que time

datetimeoffset

igual que time

La columna BUFFER_LENGTH tiene el siguiente cambio:

Tipo de datos de SQL Server Tipo devuelto en el controlador JDBC 2.0 Tipo devuelto en el controlador JDBC 3.0

tipo definido por el usuario mayor que 8 KB

2147483647

La columna TYPE_NAME tiene los siguientes cambios:

Tipo de datos de SQL Server Tipo devuelto en el controlador JDBC 2.0 Tipo devuelto en el controlador JDBC 3.0

varchar(max)

text

varchar

varbinary(max)

image

varbinary

La columna DECIMAL_DIGITS tiene los siguientes cambios:

Tipo de SQL Server Controlador JDBC 2.0 Controlador JDBC 3.0

time

null

7 (o menor si se especifica)

date

null

null

datetime2

null

7 (o menor si se especifica)

datetimeoffset

null

7 (o menor si se especifica)

La columna SQL_DATA_TYPE tiene los siguientes cambios:

Tipo de datos de SQL Server Valor de datos de SQL Server2008 en el controlador JDBC 2.0 Valor de datos de SQL Server 2008 en el controlador JDBC 3.0

varchar(max)

-10

-9

nvarchar(max)

-1

-9

xml

-10

-152

tipo definido por el usuario menor o igual que 8 KB

-3

-151

tipo definido por el usuario mayor que 8 KB

No está disponible en el controlador JDBC 2.0

-151

geografía

-4

-151

geometría

-4

-151

hierarchyid

-4

-151

time

-9

92

date

-9

91

datetime2

-9

93

datetimeoffset

-9

-155

Ejemplo

En el siguiente ejemplo se muestra cómo utilizar el método getColumns para devolver información para la columna FirstName en la tabla Person.Contact en la base de datos de ejemplo SQL Server 2005 AdventureWorks.

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();
   }
}

Vea también

Referencia

Clase SQLServerDatabaseMetaData

Conceptos

Métodos SQLServerDatabaseMetaData
Miembros SQLServerDatabaseMetaData