共用方式為


MergePublication 類別

Represents a merge publication.

繼承階層

System. . :: . .Object
  Microsoft.SqlServer.Replication. . :: . .ReplicationObject
    Microsoft.SqlServer.Replication. . :: . .Publication
      Microsoft.SqlServer.Replication..::..MergePublication

命名空間:  Microsoft.SqlServer.Replication
組件:  Microsoft.SqlServer.Rmo (在 Microsoft.SqlServer.Rmo.dll 中)

語法

'宣告
Public NotInheritable Class MergePublication _
    Inherits Publication
'用途
Dim instance As MergePublication
public sealed class MergePublication : Publication
public ref class MergePublication sealed : public Publication
[<SealedAttribute>]
type MergePublication =  
    class
        inherit Publication
    end
public final class MergePublication extends Publication

MergePublication 型別公開下列成員。

建構函式

  名稱 說明
公用方法 MergePublication() () () () Creates a new instance of the MergePublication class.
公用方法 MergePublication(String, String, ServerConnection) Initializes a new instance of the MergePublication class with the specified name, database, and connection to the Publisher.
公用方法 MergePublication(String, String, ServerConnection, Boolean) Creates an instance of the MergePublication class, specifying whether the Snapshot Agent job should be created by default.

上層

屬性

  名稱 說明
公用屬性 AltSnapshotFolder Gets or sets the alternate snapshot file location for a publication. (繼承自 Publication。)
公用屬性 Attributes Gets or sets the publication attributes. (繼承自 Publication。)
公用屬性 AutomaticReinitializationPolicy Gets or sets whether changes at the Publisher are uploaded to the Publisher when a subscription is reinitialized because of a change in the publication.
公用屬性 CachePropertyChanges Gets or sets whether to cache changes made to the replication properties or to apply them immediately. (繼承自 ReplicationObject。)
公用屬性 CompatibilityLevel Gets or sets the earliest version of Microsoft SQL Server that can subscribe to the merge publication. (覆寫 Publication. . :: . .CompatibilityLevel。)
公用屬性 ConflictRetention Gets or sets the number of days that conflict data rows are retained in conflict tables. (繼承自 Publication。)
公用屬性 ConnectionContext Gets or sets the connection to an instance of Microsoft SQL Server. (繼承自 ReplicationObject。)
公用屬性 CreateSnapshotAgentByDefault Gets or sets if the Snapshot Agent job is added automatically when the publication is created. (繼承自 Publication。)
公用屬性 DatabaseName Gets or sets the name of the publication database. (繼承自 Publication。)
公用屬性 Description Gets or sets a textual description of the publication. (繼承自 Publication。)
公用屬性 FtpAddress Gets or sets the address of the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 FtpLogin Gets or sets the login that is used to connect to the File Transfer Protocol (FTP) server for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 FtpPassword Sets the password for the login that is used to connect to the File Transfer Protocol (FTP) server for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 FtpPort Gets or sets the port of the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 FtpSubdirectory Gets or sets the subdirectory on the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 HasSubscription Gets whether the publication has one or more subscriptions. (繼承自 Publication。)
公用屬性 IsExistingObject Gets whether the object exists on the server or not. (繼承自 ReplicationObject。)
公用屬性 MaxConcurrentDynamicSnapshots Gets or sets the maximum number of concurrent Snapshot Agent sessions supported when generating data snapshots when the publication has a parameterized row filter.
公用屬性 MaxConcurrentMerge Gets or sets the maximum number of Merge Agents that can synchronize with the publication concurrently.
公用屬性 MergeArticles Gets the existing articles in the merge publication.
公用屬性 MergeSubscriptions Gets the subscriptions that belong to a merge publication.
公用屬性 Name Gets or sets the name of the publication. (繼承自 Publication。)
公用屬性 PartitionGroupsOption Gets or sets whether precomputed partitions should be used to optimize the synchronization process.
公用屬性 PostSnapshotScript Gets or sets the name and full path of a Transact-SQL script file that is executed after the initial snapshot is applied to the Subscriber. (繼承自 Publication。)
公用屬性 PreSnapshotScript Gets or sets the name and full path of a Transact-SQL script file that is executed before the initial snapshot is applied to the Subscriber. (繼承自 Publication。)
公用屬性 Priority 基礎結構。
公用屬性 PubId Gets the value that uniquely identifies the publication. (繼承自 Publication。)
公用屬性 ReplicateDdl Gets or sets the data definition language (DDL) replication options that determine if DDL changes are replicated. (繼承自 Publication。)
公用屬性 RetentionPeriod Gets or sets the amount of time before a subscription expires when the subscription is not synchronized with the publication. (繼承自 Publication。)
公用屬性 RetentionPeriodUnit Gets or sets the unit in which the RetentionPeriodUnit property is expressed.
公用屬性 SecureFtpPassword Sets the password (as a SecureString object) for the login used to connect to the File Transfer Protocol (FTP) server for publications that allow subscription initialization over FTP. (繼承自 Publication。)
公用屬性 SnapshotAgentExists Gets if the SQL Server Agent job exists to generate the initial snapshot for this publication. (繼承自 Publication。)
公用屬性 SnapshotAvailable Gets or sets whether the snapshot files for this publication have been generated and are available to initialize Subscribers.
公用屬性 SnapshotGenerationAgentProcessSecurity Gets an object that sets the Windows account under which the Snapshot Agent job runs. (繼承自 Publication。)
公用屬性 SnapshotGenerationAgentPublisherSecurity Gets the security context used by the Snapshot Agent to connect to the Publisher. (繼承自 Publication。)
公用屬性 SnapshotJobId Gets the Snapshot Agent job ID for the current publication. (繼承自 Publication。)
公用屬性 SnapshotMethod Gets or sets the data file format of the initial snapshot. (繼承自 Publication。)
公用屬性 SnapshotSchedule Gets an object that sets the schedule for the Snapshot Agent for the current publication. (繼承自 Publication。)
公用屬性 SqlServerName Gets the name of the Microsoft SQL Server instance to which this object is connected. (繼承自 ReplicationObject。)
公用屬性 Status Gets or sets the status of the publication. (繼承自 Publication。)
公用屬性 Type Gets or sets the type of publication. (繼承自 Publication。)
公用屬性 UserData Gets or sets an object property that allows users to attach their own data to the object. (繼承自 ReplicationObject。)
公用屬性 UsesHostName Gets whether the merge publication has a parameterized row filter that uses the HOST_NAME function to evaluate the partition.
公用屬性 ValidateSubscriberInfo Gets or sets the functions that are used to define a Subscriber partition of the published data when parameterized row filters are used.
公用屬性 WebSynchronizationUrl Gets or sets the URL used with Web synchronization.

上層

方法

  名稱 說明
公用方法 AddMergeDynamicSnapshotJob Adds a Snapshot Agent job that generates the filtered data partition for a Subscriber when a parameterized row filter is used.
公用方法 AddMergeDynamicSnapshotJobForLateBoundComClients Enables late-bound COM clients to add a Snapshot Agent job that generates the filtered data partition for a Subscriber when a parameterized row filter is used.
公用方法 AddMergePartition Defines a Subscriber partition for a merge publication with a parameterized row filter.
公用方法 BrowseSnapshotFolder Returns the complete path of the directory location where snapshot files are generated.
公用方法 ChangeMergeDynamicSnapshotJobScheduleWithJobId Modifies the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job ID.
公用方法 ChangeMergeDynamicSnapshotJobScheduleWithJobIdForLateBoundComClients Allows late-bound COM clients to modify the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job ID.
公用方法 ChangeMergeDynamicSnapshotJobScheduleWithJobName Modifies the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job name.
公用方法 ChangeMergeDynamicSnapshotJobScheduleWithJobNameForLateBoundComClients Allows late-bound COM clients to modify the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job name.
受保護的方法 CheckValidCreation 基礎結構。 (繼承自 ReplicationObject。)
受保護的方法 CheckValidDefinition 基礎結構。 (繼承自 Publication。)
公用方法 CommitPropertyChanges Sends all the cached property change statements to the instance of Microsoft SQL Server. (繼承自 ReplicationObject。)
公用方法 CopySnapshot Copies the snapshot files for the merge publication from the snapshot folder to a destination folder.
公用方法 Create Creates the publication. (繼承自 Publication。)
公用方法 CreateSnapshotAgent Creates the SQL Server Agent job that is used to generate the initial snapshot for the publication, if this job does not already exist. (繼承自 Publication。)
公用方法 Decouple Decouples the referenced replication object from the server. (繼承自 ReplicationObject。)
公用方法 DisableSynchronizationPartner Disables the specified synchronization partner for this merge publication.
公用方法 EnableSynchronizationPartner Enables a specified synchronization partner for this merge publication.
公用方法 EnumAllMergeJoinFilters Returns all the merge join filters defined on the merge publication.
公用方法 EnumArticles Returns the articles in the publication. (繼承自 Publication。)
公用方法 EnumMergeDynamicSnapshotJobs Returns a list of merge dynamic snapshot jobs.
公用方法 EnumMergePartitions Returns the Subscriber partitions defined for this merge publication.
公用方法 EnumPublicationAccesses Returns logins that have access to the Publisher. (繼承自 Publication。)
公用方法 EnumSubscriptions Returns the subscriptions that subscribe to the publication. (繼承自 Publication。)
公用方法 EnumSynchronizationPartners Returns the alternate synchronization partners for this merge publication.
公用方法 Equals (繼承自 Object。)
受保護的方法 Finalize (繼承自 Object。)
公用方法 GenerateFilters 基礎結構。
受保護的方法 GetChangeCommand 基礎結構。 (繼承自 ReplicationObject。)
受保護的方法 GetCreateCommand 基礎結構。 (繼承自 ReplicationObject。)
受保護的方法 GetDropCommand 基礎結構。 (繼承自 ReplicationObject。)
公用方法 GetHashCode (繼承自 Object。)
公用方法 GetMergeDynamicSnapshotJobScheduleWithJobId Returns the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber based on the job ID.
公用方法 GetMergeDynamicSnapshotJobScheduleWithJobName Returns the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber based on the job name.
公用方法 GetType (繼承自 Object。)
公用方法 GrantPublicationAccess Adds the specified login to the publication access list (PAL). (繼承自 Publication。)
受保護的方法 InternalRefresh 基礎結構。 (繼承自 ReplicationObject。)
公用方法 Load Loads the properties of an existing object from the server. (繼承自 ReplicationObject。)
公用方法 LoadProperties Loads the properties of an existing object from the server. (繼承自 ReplicationObject。)
公用方法 MakePullSubscriptionWellKnown Registers a merge pull subscription at the Publisher.
受保護的方法 MemberwiseClone (繼承自 Object。)
公用方法 ReadLastValidationDateTimes Returns information about the most recent subscription validation for a Subscriber.
公用方法 Refresh Reloads the properties of the object. (繼承自 ReplicationObject。)
公用方法 ReinitializeAllSubscriptions Marks all the subscriptions for reinitialization.
公用方法 Remove() () () () Removes an existing publication. (繼承自 Publication。)
公用方法 Remove(Boolean) Removes an existing publication even if the Distributor cannot be accessed. (繼承自 Publication。)
公用方法 RemoveMergeDynamicSnapshotJob Removes the specified dynamic snapshot job from the merge publication.
公用方法 RemoveMergePartition Removes an existing Subscriber partition defined on the merge publication.
公用方法 RemovePullSubscription Removes the registration of a Subscriber with a pull subscription to the merge publication.
公用方法 ReplicateUserDefinedScript Replicates the execution of a user-defined script to the Subscribers of a specified publication. (繼承自 Publication。)
公用方法 ResynchronizeSubscription Resynchronizes a merge subscription to a known validation state that you specify.
公用方法 RevokePublicationAccess Removes the specified login from the publication access list (PAL). (繼承自 Publication。)
公用方法 Script Generates a Transact-SQL script that can be used to re-create the publication as specified by the script options. (繼承自 Publication。)
公用方法 ScriptMergeDynamicSnapshotJob Generates a Transact-SQL script that can be used to re-create the Snapshot Agent job that generates a Subscriber's partitioned data snapshot for publications with a parameterized row filter.
公用方法 ScriptMergePartition Generates a Transact-SQL script that can be used to re-create a Subscriber partition for publications with a parameterized row filter.
公用方法 ScriptPublicationActivation Generates a Transact-SQL script that, when run, sets the status of a merge publication to active. 
公用方法 StartSnapshotGenerationAgentJob Starts the job that generates the initial snapshot for the publication. (繼承自 Publication。)
公用方法 StopSnapshotGenerationAgentJob Attempts to stop a running Snapshot Agent job. (繼承自 Publication。)
公用方法 ToString (繼承自 Object。)
公用方法 ValidatePublication Marks all subscriptions for validation during the next synchronization.
公用方法 ValidateSubscription Marks the specified subscription for validation during the next synchronization.

上層

備註

This namespace, class, or member is supported only in version 2.0 of the Microsoft .NET Framework.

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.

範例

This example creates a merge publication.

         // Set the Publisher, publication database, and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2008R2";

            ReplicationDatabase publicationDb;
            MergePublication publication;

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

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

                // Enable the database for merge publication.               
                publicationDb = new ReplicationDatabase(publicationDbName, conn);
                if (publicationDb.LoadProperties())
                {
                    if (!publicationDb.EnabledMergePublishing)
                    {
                        publicationDb.EnabledMergePublishing = true;
                    }
                }
                else
                {
                    // Do something here if the database does not exist. 
                    throw new ApplicationException(String.Format(
                        "The {0} database does not exist on {1}.",
                        publicationDb, publisherName));
                }

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

                // Enable precomputed partitions.
                publication.PartitionGroupsOption = PartitionGroupsOption.True;

                // Specify the Windows account under which the Snapshot Agent job runs.
                // This account will be used for the local connection to the 
                // Distributor and all agent connections that use Windows Authentication.
                publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
                publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

                // Explicitly set the security mode for the Publisher connection
                // Windows Authentication (the default).
                publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

                // Enable Subscribers to request snapshot generation and filtering.
                publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;
                publication.Attributes |= PublicationAttributes.DynamicFilters;

                // Enable pull and push subscriptions.
                publication.Attributes |= PublicationAttributes.AllowPull;
                publication.Attributes |= PublicationAttributes.AllowPush;

                if (!publication.IsExistingObject)
                {
                    // Create the merge publication.
                    publication.Create();
                    
                    // Create a Snapshot Agent job for the publication.
                    publication.CreateSnapshotAgent();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} publication already exists.", publicationName));
                }
            }

            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Publisher, publication database, and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"

Dim publicationDb As ReplicationDatabase
Dim publication As MergePublication

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

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

    ' Enable the database for merge publication.                
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = True
        End If
    Else
        ' Do something here if the database does not exist. 
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist on {1}.", _
         publicationDb, publisherName))
    End If

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

    ' Enable precomputed partitions.
    publication.PartitionGroupsOption = PartitionGroupsOption.True

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    ' Enable Subscribers to request snapshot generation and filtering.
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowSubscriberInitiatedSnapshot
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.DynamicFilters

    ' Enable pull and push subscriptions
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPull
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPush

    If Not publication.IsExistingObject Then
        ' Create the merge publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

This example changes the properties of a merge publication.

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

            MergePublication 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 MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;


                // If we can't get the properties for this merge publication, then throw an application exception.
                if (publication.LoadProperties())
                {
                    // If DDL replication is currently enabled, disable it.
                    if (publication.ReplicateDdl == DdlReplicationOptions.All)
                    {
                        publication.ReplicateDdl = DdlReplicationOptions.None;
                    }
                    else
                    {
                        publication.ReplicateDdl = DdlReplicationOptions.All;
                    }
                }
                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(
                    "The publication property could not be changed.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"

Dim publication As MergePublication

' 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 MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' If DDL replication is currently enabled, disable it.
        If publication.ReplicateDdl = DdlReplicationOptions.All Then
            publication.ReplicateDdl = DdlReplicationOptions.None
        Else
            publication.ReplicateDdl = DdlReplicationOptions.All
        End If
    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( _
        "The publication property could not be changed.", ex)
Finally
    conn.Disconnect()
End Try

This example deletes a merge publication.

           // Define the Publisher, publication database, 
            // and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2008R2";

            MergePublication publication;
            ReplicationDatabase publicationDb;

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

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

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

                // Delete the publication, if it exists and has no subscriptions.
                if (publication.LoadProperties() && !publication.HasSubscription)
                {
                    publication.Remove();
                }
                else
                {
                    // Do something here if the publication does not exist
                    // or has subscriptions.
                    throw new ApplicationException(String.Format(
                        "The publication {0} could not be deleted. " +
                        "Ensure that the publication exists and that all " +
                        "subscriptions have been deleted.",
                        publicationName, publisherName));
                }

                // If no other merge publications exists,
                // disable publishing on the database.
                publicationDb = new ReplicationDatabase(publicationDbName, conn);
                if (publicationDb.LoadProperties())
                {
                    if (publicationDb.MergePublications.Count == 0 && publicationDb.EnabledMergePublishing)
                    {
                        publicationDb.EnabledMergePublishing = false;
                    }
                }
                else
                {
                    // Do something here if the database does not exist.
                    throw new ApplicationException(String.Format(
                        "The database {0} does not exist on {1}.",
                        publicationDbName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Implement application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be deleted.",
                    publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher, publication database, 
' and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"

Dim publication As MergePublication
Dim publicationDb As ReplicationDatabase

' 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 merge publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Delete the publication, if it exists and has no subscriptions.
    If (publication.LoadProperties() And Not publication.HasSubscription) Then
        publication.Remove()
    Else
        ' Do something here if the publication does not exist
        ' or has subscriptions.
        Throw New ApplicationException(String.Format( _
         "The publication {0} could not be deleted. " + _
         "Ensure that the publication exists and that all " + _
         "subscriptions have been deleted.", _
         publicationName, publisherName))
    End If

    ' If no other merge publications exists,
    ' disable publishing on the database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If publicationDb.MergePublications.Count = 0 _
        And publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = False
        End If
    Else
        ' Do something here if the database does not exist.
        Throw New ApplicationException(String.Format( _
         "The database {0} does not exist on {1}.", _
         publicationDbName, publisherName))
    End If
Catch ex As Exception
    ' Implement application error handling here.
    Throw New ApplicationException(String.Format( _
     "The publication {0} could not be deleted.", _
     publicationName), ex)
Finally
    conn.Disconnect()
End Try

執行緒安全性

這個型別的任何公用 static (在 Visual Basic 中為 Shared) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。