Compartir a través de


sp_publication_validation (Transact-SQL)

Inicia una petición de validación de cada uno de los artículos de la publicación especificada. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_publication_validation [ @publication = ] 'publication'
    [ , [ @rowcount_only = ] type_of_check_requested ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] 'publisher' ]

Argumentos

  • [@publication=] **'**publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.

  • [@rowcount_only=] rowcount_only
    Indica si se devuelve sólo el recuento de filas de la tabla. rowcount_only es de tipo smallint y puede tener uno de los valores siguientes.

    Valor

    Descripción

    0

    Realiza una suma de comprobación compatible con SQL Server 7.0.

    NotaNota
    Cuando un artículo se filtra horizontalmente, se realiza una operación de recuento de filas en vez de una operación de suma de comprobación.

    1 (predeterminado)

    Realiza sólo un recuento de filas.

    2

    Realiza un recuento de filas y una suma de comprobación binaria.

    NotaNota
    Para suscriptores de SQL Server versión 7.0, sólo se realiza la validación de recuento de filas.
  • [@full_or_fast=] full_or_fast
    Es el método utilizado para calcular el recuento de filas. full_or_fast es de tipo tinyint y puede tener uno de los valores siguientes.

    Valor

    Descripción

    0

    Realiza un recuento completo mediante COUNT(*).

    1

    Realiza un recuento rápido desde sysindexes.rows. El recuento de filas en sys.sysindexes es mucho más rápido que el recuento de filas en la tabla real. Sin embargo, debido a que sys.sysindexes no se actualiza constantemente, el número de filas puede no ser exacto.

    2 (predeterminado)

    Realiza un recuento rápido condicional utilizando primero el método rápido. Si el método rápido muestra diferencias, se utiliza el método completo. Si expected_rowcount es NULL y se está utilizando el procedimiento almacenado para obtener el valor, siempre se utiliza el valor total de COUNT(*).

  • [ @shutdown_agent=] shutdown_agent
    Indica si el Agente de distribución se debe cerrar inmediatamente después de terminar la validación. shutdown_agent es de tipo bit y su valor predeterminado es 0. Si es 0, el agente de replicación no se cierra. Si es 1, el agente de replicación se cierra tras validar el último artículo.

  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    Nota

    No se debe utilizar publisher al solicitar la validación en un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_publication_validation se utiliza en la replicación transaccional.

Se puede llamar a sp_publication_validation en cualquier momento después de activar los artículos asociados con la publicación. Se puede ejecutar el procedimiento una vez de forma manual, o bien como parte de un trabajo programado de forma regular que valide los datos.

Si la aplicación tiene suscriptores de actualización inmediata, sp_publication_validation puede detectar falsos errores. sp_publication_validation calcula primero el número de filas o la suma de comprobación en el publicador y, después, en el suscriptor. Debido a que el desencadenador de actualización inmediata puede propagar una actualización al publicador desde el suscriptor, tras completar el recuento de filas o la suma de comprobación en el publicador pero antes de completarlas en el suscriptor, los valores podrían cambiar. Para asegurarse de que los valores del suscriptor y del publicador no cambian mientras se valida una publicación, detenga el servicio Microsoft DTC (Coordinador de transacciones distribuidas) en el publicador durante la validación.

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_publication_validation.