REVISIÓN: Algunos cambios pueden no replicarse en el suscriptor correctamente en SQL Server 2005 o en SQL Server 2008 cuando la suma de los parámetros excede 2,100

Seleccione idioma Seleccione idioma
Id. de artículo: 959893 - Ver los productos a los que se aplica este artículo
Nº de error: 50004054 (revisión SQL); 50004028 (revisión SQL)

Microsoft distribuye Microsoft SQL Server 2005 o correcciones de SQL Server 2008 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior SQL Server 2005 o SQL Server 2008.
Expandir todo | Contraer todo

En esta página

Síntomas

Tenga en cuenta la situación siguiente:
  • En Microsoft SQL Server 2005 o Microsoft SQL Server 2008, configurar una replicación transaccional.
  • La replicación transaccional contiene algunos artículos.
  • Uno de los artículos, utilice procedimientos almacenados para entregar el comando de inserción, el comando de actualización y el comando delete. Por ejemplo, establecer instrucción entrega para utilizar llamada <stored procedure> en la ventana Propiedades. O bien, especifica los comandos utilizando la @ ins_cmd parámetro, el @ del_cmd parámetro y @ upd_cmd parámetro de la sp_addarticle procedimiento almacenado.
  • Para otro artículo, utilice comandos de Transact-SQL para entregar las instrucciones.
  • Realizar algunos cambios en los artículos. Los cambios se entregan en el suscriptor en el mismo lote de ejecución.
  • La suma de los parámetros necesarios para entregar el lote supera 2,100.

    Nota Si utiliza seguimiento del Analizador de SQL para capturar una traza, puede encontrar el procedimiento almacenado sp_executesql para el lote que se llama por agente de distribución.
  • Sincronizar los datos.
En este escenario, algunos cambios pueden no replicarse en el suscriptor correctamente.

Nota Puede comprobar que este problema se produce mediante la herramienta de comparación de tabla (tablediff.exe).

Además, falta la instrucción que se produce al final del lote. De forma predeterminada, un lote contiene 100 transacciones.

Nota Puede ver los comandos duplicados mediante el procedimiento de sp_browsereplcmds almacenados en la base de datos de distribución.

En esta situación, si la instrucción perdida realiza una operación INSERT, una fila puede pasarse en el suscriptor. A continuación, si se producen operaciones de DML posteriores en la fila perdida en el publicador, Agente de distribución falla y recibirá el mensaje "error 20598" siguiente:
No se encontró la fila del suscriptor al aplicar el comando replicado.

Causa

El agente de distribución debería detectar si se supera el límite máximo parámetro 2.100 para procedimientos almacenados. A continuación, Agente de distribución debe mover los comandos desbordante al siguiente lote de ejecución. Sin embargo, debido a un error, el último comando se omite y no se procesa.

Solución

SQL Server 2005 Service Pack 2

importante Debe utilizar esta revisión si está ejecutando SQL Server 2005 Service Pack 2.

La corrección para este problema se publicó por primera vez en 11 de actualización acumulativa para SQL Server 2005 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
958735Paquete de actualización acumulativa 11 para SQL Server 2005 Service Pack 2
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas en el anterior de SQL Server 2005. Microsoft recomienda que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
937137Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Microsoft SQL Server 2005 se crean las revisiones para los service Pack específicos de SQL Server. Debe aplicar una revisión de SQL Server 2005 Service Pack 2 a una instalación de SQL Server 2005 Service Pack 2. De forma predeterminada, cualquier revisión suministrada en un service pack se incluye en el siguiente service pack.

Nota Para las suscripciones de inserción, aplicar la actualización acumulativa 11 al servidor de distribución. Para las suscripciones de extracción, aplique la actualización acumulativa 11 en los suscriptores.

Service Pack 3 de SQL Server 2005

importante Debe utilizar esta revisión si está ejecutando SQL Server 2005 Service Pack 3.

La corrección para este problema también aparece más adelante se publicó en 1 de actualización acumulativa para SQL Server 2005 Service Pack 3. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
959195Paquete 1 de la actualización acumulativa para SQL Server 2005 Service Pack 3
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas en el anterior de SQL Server 2005. Microsoft recomienda que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 se crean las revisiones para los service Pack específicos de SQL Server. Debe aplicar una revisión de SQL Server 2005 Service Pack 3 a una instalación de SQL Server 2005 Service Pack 3. De forma predeterminada, cualquier revisión suministrada en un service pack se incluye en el siguiente service pack.

Nota Para las suscripciones de inserción, aplicar la actualización acumulativa 1 servidor de distribución. Para las suscripciones de extracción, aplique la actualización acumulativa 1 en los suscriptores.

SQL Server 2008

La corrección para este problema se publicó por primera vez en actualización acumulativa 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960484Paquete de actualización acumulativa 3 para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008
Nota Para las suscripciones de inserción, aplicar la actualización acumulativa 3 al servidor de distribución. Para las suscripciones de extracción, aplique la actualización acumulativa 3 en los suscriptores.

Solución

Para evitar este problema, utilice uno de los métodos siguientes.

Método 1

Disminuir el valor del parámetro CommitBatchSize para Agente de distribución. Por lo tanto, puede evitar que excedan 2.100 parámetros por lotes de transacciones confirmadas.

Método 2

Utilice el mismo mecanismo de entrega de comandos para todos los artículos de la publicación. Evite mezclar los mecanismos de entrega de comando para artículos en la misma publicación.

Para evitar el error 20598

Error 20598 puede producirse como efecto secundario de este problema. Para evitar el error 20598, puede utilizar el -SkipErrors 20598 cambiar. Después de habilitar este modificador, Agente de distribución se registra el error y continúa procesar las filas adicionales que deben entregarse. Después de agente de distribución omite error 20598, integridad de datos permanece en peligro debido de la fila que falta. Quizás tenga que eliminar la fila y vuelva a insertar la fila en el publicador para entregar los cambios a todos los suscriptores.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

SQL Server 2005

Para obtener más información acerca de qué archivos se ha cambiado y para información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
958735Paquete de actualización acumulativa 11 para SQL Server 2005 Service Pack 2

SQL Server 2008

Para obtener más información acerca de qué archivos se ha cambiado y para información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960484Paquete de actualización acumulativa 3 para SQL Server 2008

Referencias

Para obtener más información acerca de la lista de generaciones que están disponibles después de SQL Server Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
937137Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Para obtener más información acerca del modelo incremental de servicio para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información acerca de cómo obtener SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
913089Cómo obtener el service pack más reciente para SQL Server 2005
Para obtener más información acerca de las nuevas características y las mejoras de SQL Server 2005 Service Pack 2, visite el siguiente sitio Web:
http://go.microsoft.com/fwlink/?LinkId=71711
Para obtener más información sobre el 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:
822499Nuevo esquema de nomenclatura para los paquetes de actualización del software de Microsoft SQL Server
Para obtener más información acerca de la terminología relativa de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 959893 - Última revisión: lunes, 19 de enero de 2009 - Versión: 4.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB959893 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 959893

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com