KB2518808-FIX: "expr: (pCopySrc-Command) <= (int) cmdLength" al agregar una columna a una tabla publicada en una publicación transaccional en SQL Server 2008 R2

Trabaje en cualquier lugar desde cualquier dispositivo con Microsoft 365

Actualice a Microsoft 365 para trabajar en cualquier lugar con las características y las actualizaciones más recientes.

Actualizar ahora

Microsoft distribuye las soluciones de Microsoft SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 R2.

Síntomas

Imagine la siguiente situación:

  • Cree una publicación transaccional en SQL Server 2008 R2.

  • Agregue una tabla como artículo a la publicación.

  • Inicializa la publicación transaccional y genera la instantánea inicial.

  • Intenta ejecutar una consulta para agregar una nueva columna a la tabla. Por ejemplo, intenta ejecutar la siguiente consulta para agregar el nombre de columna<> columna al nombre de la tabla<> tabla:

    Alter table <table name> add <column name> int null

En este escenario, la consulta no se ejecuta y recibe un mensaje de error similar al siguiente:

Ubicación: replschema. cpp: 1305Expression: (pCopySrc-Command) <= (int) cmdLengthSPID: <SPID>Process ID: <identificador de proceso>

Msj 4902, nivel 16, estado 1, línea 2Cannot busque el objeto <nombre de tabla> porque no existe o no tiene permisos. Cuando se produce este problema, se registra el siguiente mensaje de error en el archivo de registro de errores de SQL Server.

O bien, puede encontrarse con el siguiente error ligeramente diferente:

Msj 3624, nivel 20, estado 1, procedimiento sp_replflush, línea 1A se ha producido un error en la 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 Service Pack más reciente o en un QFE de soporte técnico.

Además, se registran las siguientes entradas en el registro de errores:

2011-03-25 08:56:14.71 spid55 error: 17066, gravedad: 16, estado: 1.2011-03-25 08:56:14.71 spid55 SQL Server Assertion: file: <replschema. cpp>, line = 1305 error de aserción = ' (pCopySrc-Command) <= (int) cmdLength '. Este error puede estar relacionado con el tiempo. Si el error persiste después de volver a ejecutar la instrucción, Use DBCC CHECKDB para comprobar la integridad estructural de la base de datos o reinicie el servidor para asegurarse de que las estructuras de datos en memoria no están dañadas. 2011-03-25 08:56:14.92 spid55 error: 3624, gravedad: 20, estado: 1.2011-03-25 08:56:14.92 spid55 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 Service Pack más reciente o en un QFE de soporte técnico.

Resolución

Información sobre la actualización acumulativa

Service Pack 1 de SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 1 para SQL Server 2008 R2 Service Pack 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2544793 Paquete de actualización acumulativa 1 para SQL Server 2008 R2 Service Pack 1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 1 SQL Server 2008 R2 La corrección para este problema se publicó por primera vez en la actualización acumulativa 7. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2507770 Paquete de actualización acumulativa 7 para SQL Server 2008 R2 Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Solución alternativa

Para solucionar este problema, modifique el nombre de la tabla para que contenga menos de 8 caracteres.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×