Síntomas
Imagine la siguiente situación:
-
Ejecute una instrucción MERGE que tenga una cláusula OUTPUT dentro de un procedimiento almacenado o un lote ad hoc Transact-SQL en SQL Server 2016 o 2017 en Windows.
-
La base de datos de destino usa un modelo de recuperación BULK_LOGGED o SIMPLE.
-
Inserte una gran cantidad de datos (por ejemplo: aproximadamente 6.000 filas) en una tabla de otra base de datos.
En este escenario, se produce un error de aserción y puede recibir un mensaje de error similar al siguiente:
Msj 3624, nivel 20, estado 1, línea lineNumber
Se produjo un error en una comprobación de aserción del sistema. Compruebe el registro de errores de SQL Server para ver los detalles. Por lo general, el error de aserción se debe a un error de software o a daños en los datos. Para comprobar si hay daños en la base de datos, considere la posibilidad de ejecutar DBCC CHECKDB. Si aceptó el envío de volcados a Microsoft durante la instalación, se enviará un minivolcado a Microsoft. Es posible que Microsoft disponga de una actualización en el último Service Pack o en un hotfix del soporte técnico.
Resolución
Información de actualización acumulativa:
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 12 para SQL Server 2017
Actualización acumulativa 4 para SQL Server 2016 SP2
Actualización acumulativa 13 para SQL Server 2016 Service Pack 1
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Información de la revisión a petición:
Este problema se ha corregido en la siguiente revisión a petición para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminologíaque Microsoft usa para describir las actualizaciones de software.