sp_publication_validation (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Inicia una solicitud 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 publicación.

Convenciones 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 sysname, sin ningún valor predeterminado.

[ @rowcount_only = ] 'rowcount_only' Indica si se devuelve solo el recuento de filas de la tabla. rowcount_only es smallint y puede ser uno de los siguientes valores.

Value Descripción
0 Realice una suma de comprobación compatible con SQL Server 7.0.

Nota: Cuando se filtra horizontalmente un artículo, se realiza una operación rowcount en lugar de una operación de suma de comprobación.
1 (predeterminado) Realiza solamente un recuento de filas.
2 Realiza un recuento de filas y una suma de comprobación binaria.

Nota: Para suscriptores de SQL Server versión 7.0, solo se realiza una validación de recuento de filas.

[ @full_or_fast = ] 'full_or_fast' Es el método que se usa para calcular el recuento de filas. full_or_fast es tinyint y puede ser uno de los siguientes valores.

Value Descripción
0 Realiza un recuento completo mediante COUNT(*).
1 Hace un recuento rápido de sysindexes.rows. El recuento de filas en sys.sysindexes es mucho más rápido que contar filas en la tabla real. Sin embargo, dado que sys.sysindexes se actualiza de forma difería, es posible que el recuento de filas no sea preciso.
2 (predeterminado) Realiza un recuento rápido condicional intentando 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 el procedimiento almacenado se usa para obtener el valor, siempre se usa un count(*) completo.

[ @shutdown_agent = ] 'shutdown_agent'Indica si el Agente de distribución debe apagarse inmediatamente después de la finalización de la validación. shutdown_agent es bit, con un valor predeterminado de 0. Si es 0, el agente de replicación no se cierra. Si es 1, el agente de replicación se cierra después de validar el último artículo.

[ @publisher = ] 'publisher' Especifica un publicador que no es de SQL Server. publisher es sysname, con un valor predeterminado de NULL.

Nota:

publisher no debe usarse al solicitar validación en un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_publication_validation se usa en la replicación transaccional.

sp_publication_validation se puede llamar en cualquier momento después de activar los artículos asociados a 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 errores falsos. sp_publication_validation calcula primero el recuento de filas o la suma de comprobación en el publicador y, a continuación, 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

Solo los miembros del rol fijo de servidor sysadmin o el rol fijo de base de datos db_owner pueden ejecutar sp_publication_validation.

Consulte también

Validar datos en el suscriptor
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)