SQLColumns
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics 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