REVISIÓN: Recibe un valor incorrecto cuando consulta el valor de identidad insertado en último lugar, después de utilizar un cursor de cliente para insertar datos en una tabla que contiene una columna de identidad en una aplicación que utiliza objetos de datos ActiveX

Síntomas

Considere el siguiente escenario.
  • En una instancia de Microsoft SQL Server, que tiene dos tablas y cada tabla contiene una columna de identidad.
  • Cree un desencadenador de INSERCIÓN en la primera tabla. El desencadenador inserta datos a la segunda tabla cuando se ejecuta el desencadenador.
  • Tiene una aplicación que utiliza Microsoft ActiveX Data Objects (ADO) para conectarse a la instancia de SQL Server.
  • En la aplicación, se utiliza un cursor de cliente para insertar datos en la primera tabla.
En este escenario, cuando ejecute la aplicación y, a continuación, consulta el valor de identidad insertado en último lugar, es posible que la función devuelve un valor incorrecto. El valor se corresponde con el valor de incremento automático que se genera en la segunda tabla en lugar de hacerlo en la primera tabla.

Este problema se produce en Microsoft Data Access Components (MDAC) 2.8. Es posible que MDAC 2.8 instalado en uno de los siguientes sistemas operativos de Windows:
  • Windows XP Service Pack 2 (SP2)
  • Windows XP Service Pack 3 (SP3)
  • Windows Server 2003 Service Pack 1 (SP1)
  • Windows Server 2003 Service Pack 2 (SP2)
  • Windows Vista Service Pack 1 (SP1)
  • Windows Server 2008

Causa

Cuando se insertan datos en la primera tabla, el desencadenador de inserción utiliza la función @@IDENTITY en lugar de la función SCOPE_IDENTITY para obtener el valor de identidad insertado en último lugar. Por lo tanto, la función @@IDENTITY puede devolver un valor de identidad no es generado por la misma tabla.

Solución

Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplique esta revisión solamente a sistemas que experimenten el problema descripto en este artículo. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previos

Debe tener el service pack correspondiente instalado antes de aplicar este hotfix.

Información de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información del registro

No es necesario cambiar el registro.

Información de archivo de hotfix

Este hotfix contiene sólo los archivos necesarios para corregir los problemas que se enumera en este artículo. Este hotfix no puede contener de todos los archivos que debe tener para actualizar plenamente un producto a la compilación más reciente. Versión del inglés de esta revisión tiene los atributos de archivo (o atributos de último archivo) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en el elemento fecha y hora del Panel de Control.
Windows XP SP2, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Msadce.dll2.81.1144.0331,77631-Dec-200814:35
Windows XP SP3, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Msadce.dll2.81.3010.0331,77631-Dec-200814:38
Windows Server 2003 SP1, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Msadce.dll2.82.3272.0356,35231-Dec-200816:04
Windows Server 2003 SP1, versión basada en x64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Msadce.dll2.82.3272.0622,59231-Dec-200813:48x64
Wmsadce.dll2.82.3272.0356,35231-Dec-200813:48x86
Versión basada en Itanium de Windows Server 2003 SP1
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Msadce.dll2.82.3272.01,212,41631-Dec-200813:48IA-64
Wmsadce.dll2.82.3272.0356,35231-Dec-200813:48x86
Windows Server 2003 SP2, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Msadce.dll2.82.4437.0356,35231-Dec-200815:55
Windows Server 2003 SP2, versión basada en x64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Msadce.dll2.82.4437.0622,59231-Dec-200813:53x64
Wmsadce.dll2.82.4437.0356,35231-Dec-200813:53x86
Versión basada en Itanium de Windows Server 2003 SP2
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Msadce.dll2.82.4437.01,212,41631-Dec-200813:51IA-64
Wmsadce.dll2.82.4437.0356,35231-Dec-200813:51x86
Windows Vista SP1, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Package_for_kb961451_client_1~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,36731-Dec-200815:00
Package_for_kb961451_client~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00
Package_for_kb961451_sc_0~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42131-Dec-200815:00
Package_for_kb961451_sc~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42231-Dec-200815:00
Package_for_kb961451_server_0~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42531-Dec-200815:00
Package_for_kb961451_server~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00
X86_5e4a93ecd0b53d31b4ac3789c9b5bd45_31bf3856ad364e35_6.0.6001.22342_none_2f74674e1031809b.manifestNo aplicable73831-Dec-200815:00
X86_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6251560e5afb6c40.manifestNo aplicable15,00131-Dec-200804:57
Msadce.dll6.0.6001.22342454,65631-Dec-200804:23
Windows Vista SP1, versión basada en x64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Amd64_493387e62613f98c9bf65441084bd917_31bf3856ad364e35_6.0.6001.22342_none_f1cd024aaf4fde26.manifestNo aplicable1,12431-Dec-200815:00No aplicable
Amd64_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_be6ff1921358dd76.manifestNo aplicable14,68331-Dec-200805:26No aplicable
Package_for_kb961451_client_1~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1.37531-Dec-200815:00No aplicable
Package_for_kb961451_client~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43831-Dec-200815:00No aplicable
Package_for_kb961451_sc_0~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,42931-Dec-200815:00No aplicable
Package_for_kb961451_sc~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00No aplicable
Package_for_kb961451_server_0~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43331-Dec-200815:00No aplicable
Package_for_kb961451_server~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43831-Dec-200815:00No aplicable
X86_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6251560e5afb6c40.manifestNo aplicable15,00131-Dec-200804:57No aplicable
Msadce.dll6.0.6001.22342589.82431-Dec-200804:48x64
Msadce.dll6.0.6001.22342454,65631-Dec-200804:23x86
Windows Vista SP1, versión basada en Itanium
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Ia64_81d9a6114da25ea41bd90118475b77eb_31bf3856ad364e35_6.0.6001.22342_none_38746d245142eb79.manifestNo aplicable1.12231-Dec-200815:00
Ia64_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6252fa045af9753c.manifestNo aplicable14,66731-Dec-200805:16
Package_for_kb961451_sc_0~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,42531-Dec-200815:00
Package_for_kb961451_sc~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1.42631-Dec-200815:00
Package_for_kb961451_server_0~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,42931-Dec-200815:00
Package_for_kb961451_server~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,43431-Dec-200815:00
Msadce.dll6.0.6001.223421,175,55231-Dec-200804:41
Windows Server 2008, versión de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
Package_for_kb961451_client_1~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,36731-Dec-200815:00
Package_for_kb961451_client~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00
Package_for_kb961451_sc_0~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42131-Dec-200815:00
Package_for_kb961451_sc~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42231-Dec-200815:00
Package_for_kb961451_server_0~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1,42531-Dec-200815:00
Package_for_kb961451_server~31bf3856ad364e35~x86~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00
X86_5e4a93ecd0b53d31b4ac3789c9b5bd45_31bf3856ad364e35_6.0.6001.22342_none_2f74674e1031809b.manifestNo aplicable73831-Dec-200815:00
X86_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6251560e5afb6c40.manifestNo aplicable15,00131-Dec-200804:57
Msadce.dll6.0.6001.22342454,65631-Dec-200804:23
Windows Server 2008, versión basada en x64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Amd64_493387e62613f98c9bf65441084bd917_31bf3856ad364e35_6.0.6001.22342_none_f1cd024aaf4fde26.manifestNo aplicable1,12431-Dec-200815:00No aplicable
Amd64_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_be6ff1921358dd76.manifestNo aplicable14,68331-Dec-200805:26No aplicable
Package_for_kb961451_client_1~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1.37531-Dec-200815:00No aplicable
Package_for_kb961451_client~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43831-Dec-200815:00No aplicable
Package_for_kb961451_sc_0~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,42931-Dec-200815:00No aplicable
Package_for_kb961451_sc~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1.43031-Dec-200815:00No aplicable
Package_for_kb961451_server_0~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43331-Dec-200815:00No aplicable
Package_for_kb961451_server~31bf3856ad364e35~amd64~~6.0.2.0.mumNo aplicable1,43831-Dec-200815:00No aplicable
X86_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6251560e5afb6c40.manifestNo aplicable15,00131-Dec-200804:57No aplicable
Msadce.dll6.0.6001.22342589.82431-Dec-200804:48x64
Msadce.dll6.0.6001.22342454,65631-Dec-200804:23x86
Windows Server 2008, versión basada en Itanium
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Ia64_81d9a6114da25ea41bd90118475b77eb_31bf3856ad364e35_6.0.6001.22342_none_38746d245142eb79.manifestNo aplicable1.12231-Dec-200815:00No aplicable
Ia64_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6252fa045af9753c.manifestNo aplicable14,66731-Dec-200805:16No aplicable
Package_for_kb961451_sc_0~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,42531-Dec-200815:00No aplicable
Package_for_kb961451_sc~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1.42631-Dec-200815:00No aplicable
Package_for_kb961451_server_0~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,42931-Dec-200815:00No aplicable
Package_for_kb961451_server~31bf3856ad364e35~ia64~~6.0.2.0.mumNo aplicable1,43431-Dec-200815:00No aplicable
X86_microsoft-windows-m..nts-mdac-rds-ce-dll_31bf3856ad364e35_6.0.6001.22342_none_6251560e5afb6c40.manifestNo aplicable15,00131-Dec-200804:57No aplicable
Msadce.dll6.0.6001.223421,175,55231-Dec-200804:41IA-64
Msadce.dll6.0.6001.22342454,65631-Dec-200804:23x86

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Nota: La revisión no modifica el comportamiento de ADO mediante el proveedor Microsoft OLE DB para ODBC (MSDASQL).
. Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Paquetes de actualización de 822499 nuevo esquema de nomenclatura para software de Microsoft SQL Server

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 961451 - Última revisión: 13 ene. 2017 - Revisión: 1

Comentarios