SQLColumns
SQLColumns
devuelve SQL_SUCCESS si existen valores o no 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 controlado por conjunto de claves) devolverá SQL_SUCCESS_WITH_INFO, lo 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. Las aplicaciones x que usan caracteres comodín devuelven SQLColumns
todas las tablas cuyos nombres coinciden con TableName. Para ODBC 3. Las aplicaciones SQLColumns
x 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. A continuación, 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 CLR definidos por el usuario (UDT) grandes. Para obtener más información, vea Tipos de User-Defined CLR grandes (ODBC).
Compatibilidad de SQLColumns con columnas dispersas
Se han agregado dos columnas SQL Server específicas 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 , tiene el valor SQL_TRUE; de lo contrario, SQL_FALSE. |
De conformidad con 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 SQL Server versiones anteriores a SQL Server 2008, y después de todas las columnas que exige 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).