REVISIÓN: El agente de distribución puede fallar después de agregar o quitar una columna para un artículo publicado

Seleccione idioma Seleccione idioma
Id. de artículo: 837231 - Ver los productos a los que se aplica este artículo
Nº de error: 471158 (SQL Server 8.0)
Las revisiones de Microsoft SQL Server 2000 se distribuyen 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 se incluían con la anterior de SQL Server 2000.
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando agrega una columna a un artículo publicado o quitar una columna de un artículo publicado, y el artículo está participando en una replicación transaccional, el agente de distribución correspondiente no se ejecuten correctamente. Puede aparecer un mensaje de error similar al siguiente:
Comilla antes de la cadena de caracteres ' Column Name '.
Este problema puede ocurrir cuando se cumplen las condiciones siguientes:
  • El artículo está configurado para utilizar comandos SQL para replicar el comando INSERT, el comando UPDATE o el comando DELETE en los suscriptores correspondientes.
  • Aún no se aplican los cambios, como, por ejemplo, inserciones, actualizaciones o eliminaciones, que se realizan en el artículo en el publicador en los suscriptores.

Solución

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de revisiones

La versión en inglés de este hotfix tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   Date         Time   Version        Size       File name 
   --------------------------------------------------------- 
   31-May-2003  18:45  2000.80.818.0     78,400  Console.exe 
   28-Oct-2003  04:21  2000.80.873.0    315,968  Custtask.dll 
   30-Jan-2004  16:29  2000.80.911.0     33,340  Dbmslpcn.dll 
   25-Apr-2003  02:12                   786,432  Distmdl.ldf 
   25-Apr-2003  02:12                 2,359,296  Distmdl.mdf 
   30-Jan-2003  01:55                       180  Drop_repl_hotfix.sql 
   12-Sep-2003  03:26  2000.80.859.0  1,905,216  Dtspkg.dll 
   26-Aug-2003  20:16  2000.80.854.0    528,960  Dtspump.dll 
   23-Jun-2003  22:40  2000.80.837.0  1,557,052  Dtsui.dll 
   23-Jun-2003  22:40  2000.80.837.0    639,552  Dtswiz.dll 
   24-Apr-2003  02:51                   747,927  Instdist.sql 
   03-May-2003  01:56                     1,581  Inst_repl_hotfix.sql 
   30-Jan-2004  16:29  2000.80.911.0     90,692  Msgprox.dll 
   01-Apr-2003  02:07                     1,873  Odsole.sql 
   30-Jan-2004  16:29  2000.80.911.0     62,024  Odsole70.dll 
   30-Jan-2004  16:29  2000.80.911.0     25,144  Opends60.dll 
   30-Jan-2004  16:28  2000.80.911.0     57,904  Osql.exe 
   02-Apr-2003  23:15  2000.80.797.0    279,104  Pfutil80.dll 
   04-Aug-2003  18:17                   550,780  Procsyst.sql 
   12-Sep-2003  00:37                    12,305  Qfe469315.sql 
   22-May-2003  22:57                    19,195  Qfe469571.sql 
   30-Jan-2004  01:16                 1,090,380  Replmerg.sql 
   30-Jan-2004  16:29  2000.80.911.0    221,768  Replprov.dll 
   30-Jan-2004  16:29  2000.80.911.0    307,784  Replrec.dll 
   29-Jan-2004  23:24  2000.80.911.0    159,813  Replres.rll 
   06-Sep-2003  00:00                 1,087,150  Replsys.sql 
   13-Aug-2003  16:28                   986,603  Repltran.sql 
   30-Jan-2004  16:29  2000.80.911.0    287,304  Rinitcom.dll 
   30-Jan-2004  16:29  2000.80.911.0     57,916  Semnt.dll 
   29-Jul-2003  20:13  2000.80.819.0    492,096  Semobj.dll 
   31-May-2003  18:27  2000.80.818.0    172,032  Semobj.rll 
   02-Jan-2004  19:42  2000.80.904.0     53,832  Snapshot.exe 
   09-Dec-2003  20:07                   117,834  Sp3_serv_uni.sql 
   05-Feb-2004  00:46  2000.80.913.0     28,672  Sqlagent.dll 
   05-Feb-2004  00:47  2000.80.913.0    311,872  Sqlagent.exe 
   19-Feb-2004  18:02  2000.80.916.0    168,001  Sqlakw32.dll 
   30-Jan-2004  16:29  2000.80.911.0  4,215,360  Sqldmo.dll 
   07-Apr-2003  17:44                    25,172  Sqldumper.exe 
   29-Jan-2004  23:17  2000.80.911.0     28,672  Sqlevn70.rll 
   05-Mar-2004  17:13  2000.80.922.0    180,792  Sqlmap70.dll 
   03-Sep-2003  02:56  2000.80.857.0    188,992  Sqlmmc.dll 
   02-Sep-2003  23:03  2000.80.857.0    479,232  Sqlmmc.rll 
   22-Oct-2003  00:08  2000.80.871.0    401,984  Sqlqry.dll 
   30-Jan-2004  16:29  2000.80.911.0     57,920  Sqlrepss.dll 
   09-Mar-2004  19:54  2000.80.922.0  7,614,545  Sqlservr.exe 
   30-Jan-2004  16:29  2000.80.911.0    590,396  Sqlsort.dll 
   30-Jan-2004  16:29  2000.80.911.0     45,644  Sqlvdi.dll 
   30-Jan-2004  16:29  2000.80.911.0    106,588  Sqsrvres.dll
   30-Jan-2004  16:29  2000.80.911.0     33,340  Ssmslpcn.dll
   30-Jan-2004  16:29  2000.80.911.0     82,492  Ssnetlib.dll 
   30-Jan-2004  16:29  2000.80.911.0     25,148  Ssnmpn70.dll 
   28-Oct-2003  04:21  2000.80.873.0    123,456  Stardds.dll 
   30-Jan-2004  16:29  2000.80.911.0    158,240  Svrnetcn.dll 
   30-Jan-2004  16:29  2000.80.911.0     76,416  Svrnetcn.exe 
   30-Apr-2003  23:52  2000.80.816.0     45,132  Ums.dll 
   30-Jan-2004  16:29  2000.80.911.0     98,872  Xpweb70.dll
Nota Debido a la interdependencia entre archivos, el más reciente revisión o característica que contiene estos archivos quizás contenga también archivos adicionales.

Solución

Para evitar este problema, debe configurar el artículo para utilizar los procedimientos almacenados para replicar el comando INSERT, el comando UPDATE o el comando DELETE en los suscriptores correspondientes. Para ello, siga estos pasos en el publicador:
  1. Ejecute el código siguiente para quitar todas las suscripciones para el artículo:
    USE Publication Database
    GO
    
    EXEC sp_dropsubscription 
    	@publication=N'Publication Name', 
    	@subscriber = N'all', 
    	@article = N'Article Name', 
    	@destination_db = N'all'
    GO
    
  2. Ejecute el código siguiente para quitar el artículo de la publicación transaccional actual:
    USE Publication Database
    GO
    
    EXEC sp_droparticle 
    	@publication = N'Publication Name', 
    	@article = 'Article Name',
    	@force_invalidate_snapshot = 1
    GO
    
  3. Agregar el artículo a la publicación transaccional actual para que el artículo utiliza procedimientos almacenados para replicar el comando INSERT, el comando UPDATE o el comando DELETE en los suscriptores correspondientes. To do this, run the following code:
    USE Publication Database
    GO
    
    EXEC sp_addarticle 
    	@publication = N'Publication Name', 
    	@article = N'Article Name', 
    	@source_owner = N'dbo', 
    	@source_object = N'Source Table Name', 
    	@destination_table = N'Destination Table Name', 
    	@type = N'logbased', 
    	@creation_script = null, 
    	@description = null, 
    	@pre_creation_cmd = N'drop', 
    	@schema_option = 0x00000000000000F3, 
    	@status = 16, 
    	@vertical_partition = N'false', 
    	@ins_cmd = N'sp_MSins_Article Name', 
    	@del_cmd = N'sp_MSdel_Article Name', 
    	@upd_cmd = N'sp_MSupd_Article Name', 
    	@filter = null, 
    	@sync_object = null, 
    	@auto_identity_range = N'false'
    GO
    
    Note Make sure that you modify the following parameters before you run the Transact-SQL statements:
    • @ publication : nombre de la publicación actual
    • @ article : nombre del nuevo artículo
    • @ source_object : nombre de la tabla subyacente representada por el nuevo artículo
    • destination_table @ : nombre de la tabla de destino que se crearán en el suscriptor
    • @ ins_cmd : CALL sp_MSins_ Article Name
    • @ del_cmd : CALL sp_MSdel_ Article Name
    • @ upd_cmd : MCALL sp_MSupd_ Article Name
    • @ force_invalidate_snapshot : 1, si ya se generó una instantánea para la publicación
    Además, si el artículo contiene una columna de identidad y desea que SQL Server para administrar el control de intervalo de identidad, debe establecer el parámetro @ auto_identity_range en true .
  4. Añadir suscripciones al artículo que se agrega a la publicación transaccional:
    • Para cada suscripción de inserción que se suscribe a la publicación transaccional actual, ejecutar instrucciones de Transact-SQL que son similares al siguiente en el Analizador de consultas de SQL en el publicador en la base de datos de publicación:
      USE Publication Database
      GO
      
      EXEC sp_addsubscription 
      	@publication = N'Publication Name', 
      	@article = N'Article Name', 
      	@subscriber = N'Subscriber Name', 
      	@destination_db = N'Destination Database', 
      	@sync_type = N'automatic', 
      	@update_mode = N'read only', 
      	@offloadagent = 0, 
      	@dts_package_location = N'distributor'
      GO
      Nota Asegúrese de que modifica los parámetros siguientes antes de ejecutar las instrucciones de Transact-SQL:
      • @ publication : nombre de la publicación actual
      • @ article : nombre del nuevo artículo
      • @ subscriber : nombre del suscriptor
      • destination_db @ : nombre de la base de datos de destino que contiene la suscripción
      Además, asegúrese de que no se modifican los parámetros que pueden cambiar las propiedades existentes de la suscripción.
    • Para agregar las suscripciones a su artículo en las suscripciones de extracción para todos los suscriptores existentes a la publicación transaccional, ejecute las instrucciones Transact-SQL que son similares al siguiente en el Analizador de consultas de SQL en el publicador en la base de datos de publicación:
      USE Publication Database
      GO
      
      EXEC sp_refreshsubscriptions 
      	@publication = N'Publication Name'
      GO
  5. Ejecutar al agente de instantáneas que corresponde a la publicación transaccional actual en el distribuidor.
  6. Ejecute al agente de distribución que corresponde a cada suscripción que se suscribe a la publicación transaccional actual.

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:".

Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Referencias

Para obtener información adicional, 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: 837231 - Última revisión: viernes, 02 de noviembre de 2007 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Palabras clave: 
kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB837231 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): 837231

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