Freigeben über


TransPublication.ValidatePublication Methode

Definition

Ruft die Inlineveröffentlichungsvalidierung für alle Abonnements auf.

public:
 void ValidatePublication(Microsoft::SqlServer::Replication::ValidationOption validationOption, Microsoft::SqlServer::Replication::ValidationMethod validationMethod, bool shutdownAgent);
public void ValidatePublication (Microsoft.SqlServer.Replication.ValidationOption validationOption, Microsoft.SqlServer.Replication.ValidationMethod validationMethod, bool shutdownAgent);
member this.ValidatePublication : Microsoft.SqlServer.Replication.ValidationOption * Microsoft.SqlServer.Replication.ValidationMethod * bool -> unit
Public Sub ValidatePublication (validationOption As ValidationOption, validationMethod As ValidationMethod, shutdownAgent As Boolean)

Parameter

validationOption
ValidationOption

Ein ValidationOption-Objektwert, der den Typ der Validierung angibt, der ausgeführt wird.

validationMethod
ValidationMethod

Ein ValidationMethod-Objektwert, der Optionen für die Zeilenanzahlvalidierung angibt.

shutdownAgent
Boolean

Ein Boolean-Wert. Wenn der Wert true ist, wird der Verteilungs-Agent sofort nach der Validierung beendet. Wenn der Wert false ist, wird der Verteilungs-Agent weiter ausgeführt.

Beispiele

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";

TransPublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // If we can't get the properties for this publication, 
    // throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly,
            ValidationMethod.ConditionalFast, false);

        // If not already running, start the Distribution Agent at each 
        // Subscriber to synchronize and validate the subscriptions.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "Subscription validation could not be initiated.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

Hinweise

Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben, der mithilfe des Replikationsmonitors angezeigt wird. Weitere Informationen finden Sie unter Monitoring Replication.

Die ValidatePublication Methode kann nur von Mitgliedern der sysadmin Festen Serverrolle im Publisher oder von Mitgliedern der festen Datenbankrolle in der db_owner Publikationsdatenbank aufgerufen werden.

Das Aufrufen ValidatePublication entspricht der Ausführung von sp_publication_validation.

Gilt für: