SQLColumns

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLColumns devuelve SQL_SUCCESS si existen valores para los parámetros CatalogName, TableName o ColumnName . SQLFetch devuelve SQL_NO_DATA si se usan valores no válidos en estos parámetros.

Nota:

Para los tipos de valores grandes, todos los parámetros de longitud se devolverán con un valor de SQL_SS_LENGTH_UNLIMITED.

SQLColumns se puede ejecutar en un cursor de servidor estático. Un intento de ejecutar SQLColumns en un cursor actualizable (dinámico o conjunto de claves) devolverá SQL_SUCCESS_WITH_INFO que indica que se ha cambiado el tipo de cursor.

El controlador ODBC de SQL Server Native Client admite la información de informes de tablas en servidores vinculados aceptando un nombre de dos partes para el parámetro CatalogName : Linked_Server_Name.Catalog_Name.

Para ODBC 2.x aplicaciones que no usan caracteres comodín en TableName, SQLColumns devuelve información sobre las tablas cuyos nombres coinciden con TableName y son propiedad del usuario actual. Si el usuario actual no posee ninguna tabla cuyo nombre coincide con el parámetro TableName , SQLColumns devuelve información sobre las tablas que pertenecen a otros usuarios donde el nombre de la tabla coincide con el parámetro TableName . Para ODBC 2.X aplicaciones que usan caracteres comodín, SQLColumns devuelve todas las tablas cuyos nombres coinciden con TableName. Para ODBC 3.Las aplicaciones x SQLColumns devuelven todas las tablas cuyos nombres coinciden con TableName independientemente del propietario o si se usan caracteres comodín.

La tabla siguiente muestra las columnas devueltas por el conjunto de resultados:

Nombre de la columna Descripción
DATA_TYPE Devuelve SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR para los tipos de datos varchar(max).
TYPE_NAME Devuelve "varchar", "varbinary" o "nvarchar" para los tipos de datos varchar(max), varbinary(max)y nvarchar(max).
COLUMN_SIZE Devuelve SQL_SS_LENGTH_UNLIMITED para los tipos de datos varchar(max) que indican que el tamaño de la columna es ilimitado.
BUFFER_LENGTH Devuelve SQL_SS_LENGTH_UNLIMITED para los tipos de datos varchar(max) que indican que el tamaño del búfer es ilimitado.
SQL_DATA_TYPE Devuelve SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR para los tipos de datos varchar(max).
CHAR_OCTET_LENGTH Devuelve la longitud máxima de una columna de caracteres o binaria. Devuelve 0 para indicar que el tamaño es ilimitado.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Devuelve el nombre del catálogo donde se define un nombre de 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 Devuelve el nombre del esquema donde se define un nombre de colección de esquemas XML. Si no se encuentra el nombre de esquema, esta variable contiene una cadena vacía.
SS_XML_SCHEMACOLLECTION_NAME Devuelve el nombre de una colección de esquemas XML. Si no se encuentra el nombre, esta variable contiene una cadena vacía.
SS_UDT_CATALOG_NAME Nombre del catálogo que contiene el UDT (tipo definido por el usuario).
SS_UDT_SCHEMA_NAME Nombre del esquema que contiene el UDT.
SS_UDT_ASSEMBLY_TYPE_NAME Nombre completo de ensamblado del UDT.

Para las UDT, la columna TYPE_NAME existente se usa para indicar el nombre del UDT; por lo tanto, no se debe agregar ninguna columna adicional al conjunto de resultados de SQLColumns o SQLProcedureColumns. El DATA_TYPE de una columna o parámetro de UDT es SQL_SS_UDT.

Para el UDT de los parámetros, puede utilizar los nuevos descriptores específicos del controlador definidos anteriormente para obtener o establecer las propiedades de metadatos adicionales de un UDT, en caso de que el servidor devuelva o requiera esta información.

Cuando un cliente se conecta a SQL Server y llama a SQLColumns, el uso de valores NULL o comodín para el parámetro de entrada del catálogo no devolverá información de otros catálogos. En su lugar, solo se devolverá información sobre el catálogo actual. El cliente puede llamar primero a SQLTables para determinar en qué catálogo se encuentra la tabla deseada. Después, el cliente puede usar ese valor de catálogo para el parámetro de entrada de catálogo en su llamada a SQLColumns para recuperar información sobre las columnas de esa tabla.

Parámetros de SQLColumns y con valores de tabla

El conjunto de resultados devuelto por SQLColumns depende del valor de SQL_SOPT_SS_NAME_SCOPE. Para obtener más información, vea SQLSetStmtAttr. Se han agregado las columnas siguientes para los parámetros con valores de tabla:

Nombre de la columna Tipo de datos Contenido
SS_IS_COMPUTED Smallint Para una columna de TABLE_TYPE, este es SQL_TRUE si se trata de una columna calculada; de lo contrario, SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE si se trata de una columna de identidad; de lo contrario, SQL_FALSE.

Para obtener más información sobre los parámetros con valores de tabla, vea Parámetros con valores de tabla (ODBC).

Compatibilidad de SQLColumns con las características mejoradas de fecha y hora

Para obtener información sobre los valores devueltos para los tipos de fecha y hora, vea Metadatos del catálogo.

Para obtener más información, vea Mejoras de fecha y hora (ODBC).

Compatibilidad de SQLColumns con UDT CLR grandes

SQLColumns admite tipos definidos por el usuario (UDT) clR grandes. Para obtener más información, vea Tipos definidos por el usuario (ODBC) clR grandes.

Compatibilidad de SQLColumns con columnas dispersas

Se han agregado dos columnas específicas de SQL Server al conjunto de resultados para SQLColumns:

Nombre de la columna Tipo de datos Descripción
SS_IS_SPARSE Smallint Si la columna es una columna dispersa, tiene el valor SQL_TRUE; de lo contrario, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Si la columna es la columna column_set , se SQL_TRUE; de lo contrario, SQL_FALSE.

Conforme a la especificación ODBC, SS_IS_SPARSE y SS_IS_COLUMN_SET aparecen antes de todas las columnas específicas del controlador que se agregaron a las versiones de SQL Server anteriores a SQL Server 2008 (10.0.x) y después de todas las columnas obligatorias por ODBC.

El conjunto de resultados devuelto por SQLColumns depende del valor de SQL_SOPT_SS_NAME_SCOPE. Para obtener más información, vea SQLSetStmtAttr.

Para obtener más información sobre las columnas dispersas en ODBC, vea Compatibilidad con columnas dispersas (ODBC).

Consulte también

Función SQLColumns
Detalles de implementación de la API de ODBC