Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema que se produce al intentar ejecutar una BULK INSERT
operación o BCP
.
Versión original del producto: SQL Server 2008 R2 Enterprise, SQL Server 2008 Enterprise
Número de KB original: 2700641
Síntomas
Considere el caso siguiente:
El servidor A y el servidor B ejecutan Microsoft SQL Server 2008 o SQL Server 2008 R2.
Configurará la creación de reflejo de la base de datos entre el servidor A y el servidor B.
Ejecute una
BULK INSERT
instrucción oBCP
en la base de datos principal.Nota:
De forma predeterminada, la
CHECK_CONSTRAINTS
opción se establece en desactivada al ejecutar unaBULK INSERT
instrucción oBCP
.La creación de reflejo de la base de datos se interrumpe y la sesión de creación de reflejo de la base de datos entra en estado SUSPENDED.
En este escenario, se produce una aserción en el servidor reflejado. Por lo tanto, se crea un archivo de minivolcado en la carpeta de registro de SQL Server. Además, verá el siguiente error en el registro de errores de SQL Server en el servidor reflejado:
Nota:
Debe reinicializar la creación de reflejo de la base de datos para resolver este problema.
Causa
Este problema se produce porque la información de compatibilidad de bloqueo en el registro de transacciones de la base de datos principal no se transfiere al servidor reflejado.
Solución
Para solucionar este problema, ejecute la BULK INSERT
instrucción o BCP
en la base de datos principal mediante la CHECK_CONSTRAINTS
opción .
Nota:
La CHECK_CONSTRAINTS
opción provoca un rendimiento más lento. Sin embargo, no se produce la aserción de bloqueo en el servidor reflejado.
Información adicional
Durante una BULK INSERT
operación o BCP
, una transacción secundaria desactiva la CHECK_CONSTRAINTS
opción . Esta transacción secundaria usa un bloqueo compatible con los bloqueos de transacción primarios. La información de compatibilidad se almacena en el registro de transacciones de la base de datos principal. Por lo tanto, la solicitud de bloqueo de transacción secundaria se concede en la base de datos principal.
Sin embargo, esta información de compatibilidad no se transfiere al servidor reflejado. Por lo tanto, la solicitud de bloqueo de transacción secundaria no es compatible con los bloqueos de transacción primarios en el servidor reflejado. Este escenario provoca la aserción en el servidor reflejado.