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