Cómo administrar columnas de identidad (programación de la replicación con Transact-SQL)

Cuando las inserciones del Suscriptor se replican de nuevo al Publicador, se deben administrar las columnas de identidad para evitar la asignación del mismo valor de identidad en el Suscriptor y el Publicador. La replicación puede administrar automáticamente intervalos de identidad o puede elegir procesar manualmente la administración de intervalos de identidad. Puede usar los procedimientos almacenados de replicación para especificar las opciones de administración de intervalos de identidad cuando se crea un artículo. Para obtener información sobre las opciones de administración de intervalos de identidad proporcionadas por la replicación, vea Replicar columnas de identidad.

Nota

Al publicar una tabla en más de una publicación, debe especificar las mismas opciones de administración de intervalos de identidad para ambas publicaciones. Para obtener más información, vea la sección sobre cómo publicar tablas en varias publicaciones en Publicar datos y objetos de base de datos.

Para habilitar la administración automática de intervalos de identidad al definir artículos para una publicación transaccional

  • En la base de datos de publicación del publicador, ejecute sp_addarticle. Si la tabla de origen que va a publicar tiene una columna de identidad, especifique un valor de auto para @identityrangemanagementoption, el intervalo de valores de identidad asignados al Publicador para @pub_identity_range, el intervalo de valores de identidad asignados a cada Suscriptor para @identity_range y el porcentaje de valores de identidad totales usados antes de que se asigne un nuevo intervalo de identidad para @threshold. Para obtener más información acerca de la definición de artículos, vea Cómo definir un artículo (programación de la replicación con Transact-SQL).

    Nota

    Asegúrese de que el tipo de datos de la columna de identidad es lo bastante grande como para admitir el intervalo total de identidades que se están asignando a todos los Suscriptores.

Para deshabilitar la administración automática de intervalos de identidad al definir artículos para una publicación transaccional

  1. En la base de datos de publicación del publicador, ejecute sp_addarticle. Especifique un valor de manual para @identityrangemanagementoption. Para obtener más información acerca de la definición de artículos, vea Cómo definir un artículo (programación de la replicación con Transact-SQL).

  2. Asigne intervalos para identificar las columnas de artículo en el Suscriptor para evitar la generación de conflictos para actualizar los Suscriptores. Para obtener más información, vea la sección sobre cómo asignar intervalos para la administración manual de intervalos de identidad en el tema Replicar columnas de identidad.

Para habilitar la administración automática de intervalos de identidad al definir artículos para una publicación de mezcla

  • En la base de datos de publicación del publicador, ejecute sp_addmergearticle. Si la tabla de origen que va a publicar tiene una columna de identidad, especifique un valor de auto para @identityrangemanagementoption, el intervalo de valores de identidad asignados a una suscripción de servidor para @pub_identity_range, el intervalo de valores de identidad asignados al Publicador y cada suscripción de cliente para @identity_range, y el porcentaje de valores de identidad totales usados antes de que se asigne un nuevo intervalo de identidad para @threshold. Para obtener más información sobre cuándo se asignan los nuevos intervalos de identidad, vea Asignar intervalos de identidad en el tema Replicar columnas de identidad. Para obtener más información acerca de la definición de artículos, vea Cómo definir un artículo (programación de la replicación con Transact-SQL).

    Nota

    Asegúrese de que el tipo de datos de la columna de identidad es lo bastante grande como para admitir el intervalo total de identidades que se están asignando a todos los Suscriptores, particularmente para los Suscriptores con suscripciones de servidor.

Para deshabilitar la administración automática de intervalos de identidad al definir artículos para una publicación de mezcla

  1. En la base de datos de publicación del publicador, ejecute sp_addmergearticle. Especifique uno de los valores siguientes para @identityrangemanagementoption:

    • manual: los intervalos de identidad deben estar asignados manualmente para actualizar los Suscriptores.

    • none: las columnas de identidad en el Publicador no se definirán como columnas de identidad en el Suscriptor.

    Para obtener más información acerca de la definición de artículos, vea Cómo definir un artículo (programación de la replicación con Transact-SQL).

  2. Asigne intervalos para identificar las columnas de artículo en el Suscriptor para evitar la generación de conflictos para actualizar los Suscriptores.

Para cambiar los valores de administración automática de intervalos de identidad para un artículo existente en una publicación transaccional o de instantáneas

  1. En la base de datos de publicación del publicador, ejecute sp_helparticle y tenga en cuenta el valor de identityrangemanagementoption en el conjunto de resultados. Si este valor es 0, la administración automática de intervalos de identidad no está habilitada.

  2. Si el valor de identityrangemanagementoption en el conjunto de resultados es 1, cambie la configuración de la siguiente manera:

    • Para cambiar los intervalos de identidad asignados, ejecute sp_changearticle en el Publicador de la base de datos de publicación. Especifique un valor de identity_range o pub_identity_range para @property y el nuevo valor del rango para @value.

    • Para cambiar el umbral en el que los nuevos intervalos están asignados, ejecute sp_changearticle en el Publicador de la base de datos de publicación. Especifique un valor de threshold para @property y el nuevo valor umbral para @value.

Para cambiar la configuración de administración automática de intervalos de identidad para un artículo existente en una publicación de mezcla

  1. En la base de datos de publicación del publicador, ejecute sp_helpmergearticle y tenga en cuenta el valor de identity_support en el conjunto de resultados. Si este valor es 0, la administración automática de intervalos de identidad no está habilitada.

  2. Si el valor de identity_support en el conjunto de resultados es 1, cambie la configuración de la siguiente manera:

    • Para cambiar los intervalos de identidad asignados, ejecute sp_changemergearticle en el Publicador de la base de datos de publicación. Especifique un valor de identity_range o pub_identity_range para @property y el nuevo valor del rango para @value.

    • Para cambiar el umbral en el que los nuevos intervalos están asignados, ejecute sp_changemergearticle en el Publicador de la base de datos de publicación. Especifique un valor de threshold para @property y el nuevo valor umbral para @value. Para obtener más información sobre cuándo se asignan los nuevos intervalos de identidad, vea Asignar intervalos de identidad en el tema Replicar columnas de identidad.

    • Para deshabilitar la administración automática de intervalos de identidad, ejecute sp_changemergearticle en el Publicador de la base de datos de publicación. Especifique un valor de identityrangemanagementoption para @property y manual o ninguno para @value.