Cómo agregar un artículo a una instantánea existente o a una publicación transaccional con sistema de los procedimientos almacenados

Seleccione idioma Seleccione idioma
Id. de artículo: 830210 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Hay dos formas para agregar un artículo sin publicar a una instantánea existente a una publicación transaccional o publicación de mezcla. Administrador corporativo de SQL Server puede utilizar para agregar un artículo sin publicar o puede utilizar los procedimientos de almacenado del sistema de replicación que se ofrecen con SQL Server para agregar un artículo sin publicar.

Si agrega un artículo sin publicar a una publicación existente mediante el Administrador corporativo de SQL Server, el esquema y los datos del artículo agregado se propaga automáticamente a todos los suscriptores al ejecutar los agentes de duplicación respectivos por primera vez después de agregar el artículo. Si agrega un artículo a una publicación de combinación mediante el procedimiento de almacenado del sistema de duplicación sp_addmergearticle , el esquema y los datos del artículo agregado se propaga automáticamente a todos los suscriptores. Sin embargo, si utiliza el procedimiento almacenado del sistema de replicación de sp_addarticle para agregar un artículo sin publicar a una instantánea o a una publicación transaccional, el esquema y los datos del artículo agregado no se propaga automáticamente a todos los suscriptores al ejecutar los agentes de duplicación respectivos para la primera vez después de agregar el artículo.

En este artículo describe cómo agregar un artículo a una instantánea existente o a una publicación transaccional mediante el sistema de replicación almacena los procedimientos para que el esquema y los datos del artículo agregado correctamente también se propaga a los suscriptores durante el proceso de sincronización.

Para obtener más información acerca cómo agregar un artículo mediante SQL Server Administrador corporativo, consulte el tema siguiente en los libros en pantalla de SQL Server:

How to modify publications and articles (Enterprise Manager)

Más información

Agregar un artículo a una instantánea existente o a una publicación transaccional

Para agregar un artículo a una instantánea o a una publicación transaccional, puede utilizar el procedimiento almacenado del sistema de replicación de sp_addarticle . Sin embargo, cuando se utiliza el procedimiento de sp_addarticle almacenado, la suscripción no se actualiza automáticamente. Por lo tanto, deberá agregar explícitamente la suscripción al artículo nuevo. Para ello, siga estos pasos:
  1. Inicie el Administrador corporativo SQL Server.
  2. En el panel izquierdo, busque y, a continuación, seleccione la instancia de SQL Server que contiene la publicación.
  3. En el menú Herramientas , apunte a duplicación y, a continuación, haga clic en crear y administrar publicaciones .
  4. En el cuadro de diálogo crear y administrar publicaciones en Instance Name, busque y, a continuación, seleccione la publicación. Haga clic en la publicación de secuencias de comandos .
  5. En el Generar secuencia de comandos SQL-< Publicación Nombre > cuadro, en las Opciones de comando , haga clic para seleccionar la opción de secuencia de comandos los pasos para crear esta publicación y, a continuación, haga clic en vista previa .
  6. En el script de componentes de replicación Preview diálogo cuadro, haga clic en Guardar como .
  7. En el cuadro de diálogo Ubicación de archivo de secuencias de comandos , escriba NewArticle.sql en el cuadro Nombre de archivo y, a continuación, haga clic en Guardar .
  8. Inicie el Analizador de consultas de SQL y, a continuación, conéctese a la instancia de SQL Server que contiene la publicación.
  9. Para agregar un artículo sin publicar a la publicación, ejecute las instrucciones Transact-SQL que son similares al siguiente en el Analizador de consultas SQL en el publicador en la base de datos de publicación.
    • ejemplo de código para una publicación de instantáneas
      USE <Publication Database>
      GO
      
      EXEC sp_addarticle 
      	@publication = N'<Publication Name>', 
      	@article = N'<Article Name>', 
      	@source_owner = N'dbo', 
      	@source_object = N'<Article Object Name>', 
      	@destination_table = N'<Destination Table Name>', 
      	@type = N'logbased', 
      	@creation_script = null, 
      	@description = null, 
      	@pre_creation_cmd = N'drop', 
      	@schema_option = 0x00000000000000F1, 
      	@status = 0, 
      	@vertical_partition = N'false', 
      	@ins_cmd = N'SQL', 
      	@del_cmd = N'SQL', 
      	@upd_cmd = N'SQL', 
      	@filter = null, 
      	@sync_object = null, 
      	@auto_identity_range = N'false'
      GO
      
      Nota Debe copiar una de las instrucciones de Transact-SQL que contienen el procedimiento de almacenado del sistema de replicación de sp_addarticle que se utiliza para agregar un artículo a la publicación desde el archivo de secuencia de comandos NewArticle.sql que se creó en el paso 7.

      Asegúrese de que modifique los parámetros siguientes como se especifica antes de ejecutar las instrucciones de Transact-SQL.

      Contraer esta tablaAmpliar esta tabla
      ParámetroValor
      @ publicationEl nombre de la publicación actual.
      @ articleNombre del artículo nuevo.
      @ source_objectNombre de la tabla subyacente representada por el nuevo artículo.
      @ destination_tableNombre de la tabla de destino se creará en el suscriptor.
      @ force_invalidate_snapshot1 (Si está ya generó una instantánea de 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 la @ auto_identity_range parámetro en true .
    • ejemplo de código para una publicación transaccional sp_addarticle
      USE <Publication Database>
      GO
      
      EXEC sp_addarticle 
      	@publication = N'<Publication Name>', 
      	@article = N'<Article Name>', 
      	@source_owner = N'dbo', 
      	@source_object = N'<Article Object 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'CALL sp_MSins_<Article Name>', 
      	@del_cmd = N'CALL sp_MSdel_<Article Name>', 
      	@upd_cmd = N'MCALL sp_MSupd_<Article Name>', 
      	@filter = null, 
      	@sync_object = null, 
      	@auto_identity_range = N'false'
      GO

      Nota Debe copiar una de las instrucciones de Transact-SQL que contienen el procedimiento de almacenado del sistema de replicación de sp_addarticle que se utiliza para agregar un artículo a la publicación desde el archivo de secuencia de comandos NewArticle.sql que se creó en el paso 7.

      Asegúrese de que modifique los parámetros siguientes como se especifica antes de ejecutar las instrucciones de Transact-SQL.

      Contraer esta tablaAmpliar esta tabla
      ParámetroValor
      @ publicationEl nombre de la publicación actual.
      @ articleNombre del artículo nuevo.
      @ source_objectNombre de la tabla subyacente representada por el nuevo artículo.
      @ destination_tableNombre de la tabla de destino se creará en el suscriptor.
      @ ins_cmdCALL sp_MSins_ < Artículo Nombre >
      @ del_cmdCALL sp_MSdel_ < Artículo Nombre >
      @ upd_cmdMCALL sp_MSupd_ < Artículo Nombre >
      @ force_invalidate_snapshot1 (Si está ya generó una instantánea de 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 la @ auto_identity_range parámetro en true .
    Después de agregar el artículo sin publicar a la publicación actual, puede observar que la propiedad de Suscripción completa para cada suscripción que se suscribe a la publicación actual se establece en no :

    suscripción completa: no, esta suscripción contiene sólo algunos de los artículos de esta publicación.
  10. Agregar suscripciones al artículo que se ha agregado a la publicación.
    • ejemplo de código para una suscripción de inserción

      Para cada suscripción de inserción que se suscribe a la publicación actual, ejecute las instrucciones Transact-SQL en el Analizador de consultas SQL en el publicador en la base de datos de publicación. Éste es un ejemplo:
      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 se debe copiar una de las instrucciones de Transact-SQL que contienen el sistema de replicación sp_addsubscription procedimiento almacenado que se utilizó para agregar la suscripción para un artículo desde el archivo de secuencia de comandos de NewArticle.sql que se creó en el paso 7.

      Asegúrese de que modifique los parámetros siguientes antes de ejecutar la instrucción de Transact-SQL.

      Contraer esta tablaAmpliar esta tabla
      ParámetroValor
      @ publicationEl nombre de la publicación actual.
      @ articleNombre del artículo nuevo.
      @ subscriberNombre del suscriptor.
      @ destination_dbNombre de la base de datos de destino que contiene la suscripción.


      También debe asegurarse de que no se puede modificar los parámetros que pueden cambiar las propiedades existentes de la suscripción.
    • ejemplo de código para una suscripción de extracción

      Para agregar las suscripciones a los artículos nuevos de las suscripciones de extracción para todos los suscriptores existentes a la publicación, ejecute instrucciones Transact-SQL en el Analizador de consultas SQL en el publicador en la base de datos de publicación. Éste es un ejemplo:
      USE <Publication Database>
      GO
      
      EXEC sp_refreshsubscriptions 
      	@publication = N'<Publication Name>'
      GO
    Puede que observe que la propiedad de Suscripción completa para cada suscripción que se suscribe a la publicación actual está establecida en :

    suscripción completa: Sí, esta suscripción contiene todos los artículos de esta publicación.
  11. Ejecutar al agente de instantáneas que corresponde a la publicación actual en el distribuidor.
  12. Ejecute al agente de distribución que corresponde a cada suscripción que se suscribe a la publicación actual.

Referencias

Para obtener más información sobre el sistema de replicación procedimientos almacenados que se utilizan para agregar la replicación, vea los temas siguientes en los libros en pantalla de SQL Server:
sp_addsubscription

sp_refreshsubscriptions

sp_addarticle


Para obtener más información acerca de cómo administrar los valores de identidad, consulte el tema siguiente en los libros en pantalla de SQL Server:
Managing Identity Values


Para obtener información adicional la sp_addmergearticle procedimiento de almacenado, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
297369REVISIÓN: Incorrecto Error al agregar el artículo de mezcla a una publicación con NO SYNC suscriptor

269204Error: La adición de un artículo de mezcla con un filtro de subconjunto podría causar errores el agente de instantáneas

Propiedades

Id. de artículo: 830210 - Última revisión: lunes, 23 de abril de 2007 - Versión: 1.8
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbmt kbreplication kbhowtomaster kbcodesnippet kbhowto KB830210 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): 830210

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