Detección de metadatos en SQL Server Native Client
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Importante
SQL Server Native Client (SNAC) no se incluye con:
- SQL Server 2022 (16.x) y versiones posteriores
- SQL Server Management Studio 19 y versiones posteriores
No se recomiendan SQL Server Native Client (SQLNCLI o SQLNCLI11) ni Microsoft OLE DB Provider for SQL Server (SQLOLEDB) heredado para el desarrollo de nuevas aplicaciones.
En el caso de los proyectos nuevos, use uno de los siguientes controladores:
Para SQLNCLI que se incluye como componente de motor de base de datos de SQL Server (versiones 2012 a 2019), consulte esta excepción de ciclo de vida de soporte técnico.
La mejora de la detección de metadatos en SQL Server 2012 (11.x) permite a las aplicaciones de SQL Server Native Client asegurarse de que los metadatos de columna o parámetro devueltos de la ejecución de una consulta son idénticos o compatibles con el formato de metadatos especificado antes de ejecutar la consulta. Se producirá un error si los metadatos devueltos tras la ejecución de la consulta no son compatibles con el formato de los metadatos especificados antes de la ejecución de la consulta.
En el caso de las funciones bcp y ODBC y las interfaces IBCPSession e IBCPSession2, ahora se puede especificar una lectura diferida (detección de metadatos diferida) para evitar la detección de metadatos en operaciones de salida de consulta. De este modo, mejora el rendimiento y se eliminan los errores de detección de metadatos.
Si desarrolla una aplicación con SQL Server Native Client en SQL Server 2012 (11.x), pero se conecta a una versión de servidor anterior a SQL Server 2012 (11.x), la funcionalidad de detección de metadatos se corresponderá con la versión del servidor.
Comentarios
Las siguientes funciones bcp se han mejorado en SQL Server 2012 (11.x) para proporcionar una detección de metadatos mejorada:
También percibirá una mejora del rendimiento si especifica el formato del metadatos utilizando bcp_setbulkmode.
bcp_control tiene una nueva eOption para controlar el comportamiento de bcp_readfmt: BCPDELAYREADFMT.
Las siguientes funciones ODBC se han mejorado en SQL Server 2012 (11.x) para proporcionar una detección de metadatos mejorada:
Las funciones miembro de OLE DB siguientes se han perfeccionado en SQL Server 2012 (11.x) para proporcionar una detección de metadatos mejorada:
IColumnsInfo::GetColumnInfo
IColumnsRowset::GetColumnsRowset
ICommandWithParameters::GetParameterInfo (consulte ICommandWithParameters para más información)
También percibirá una mejora del rendimiento si especifica el formato de metadatos mediante IBCPSession::BCPSetBulkMode.
La detección de metadatos mejorada en SQL Server Native Client es posible debido a la adición de dos procedimientos almacenados en SQL Server 2012 (11.x):
sp_describe_first_result_set
sp_describe_undeclared_parameters