Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

MergePublication Class

 

Applies To: SQL Server 2016 Preview

Represents a merge publication.

Namespace:   Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Rmo (in Microsoft.SqlServer.Rmo.dll)


public sealed class MergePublication : Publication

NameDescription
System_CAPS_pubmethodMergePublication()

Creates a new instance of the MergePublication class.

System_CAPS_pubmethodMergePublication(String, String, ServerConnection)

Initializes a new instance of the MergePublication class with the specified name, database, and connection to the Publisher.

System_CAPS_pubmethodMergePublication(String, String, ServerConnection, Boolean)

Creates an instance of the MergePublication class, specifying whether the Snapshot Agent job should be created by default.

NameDescription
System_CAPS_pubpropertyAltSnapshotFolder

Gets or sets the alternate snapshot file location for a publication. (Inherited from Publication.)

System_CAPS_pubpropertyAttributes

Gets or sets the publication attributes.(Inherited from Publication.)

System_CAPS_pubpropertyAutomaticReinitializationPolicy

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.

System_CAPS_pubpropertyCachePropertyChanges

Gets or sets whether to cache changes made to the replication properties or to apply them immediately.(Inherited from ReplicationObject.)

System_CAPS_pubpropertyCompatibilityLevel

Gets or sets the earliest version of Microsoft SQL Server that can subscribe to the merge publication.(Overrides Publication.CompatibilityLevel.)

System_CAPS_pubpropertyConflictRetention

Gets or sets the number of days that conflict data rows are retained in conflict tables.(Inherited from Publication.)

System_CAPS_pubpropertyConnectionContext

Gets or sets the connection to an instance of Microsoft SQL Server.(Inherited from ReplicationObject.)

System_CAPS_pubpropertyCreateSnapshotAgentByDefault

Gets or sets if the Snapshot Agent job is added automatically when the publication is created.(Inherited from Publication.)

System_CAPS_pubpropertyDatabaseName

Gets or sets the name of the publication database. (Inherited from Publication.)

System_CAPS_pubpropertyDescription

Gets or sets a textual description of the publication.(Inherited from Publication.)

System_CAPS_pubpropertyFtpAddress

Gets or sets the address of the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP.(Inherited from Publication.)

System_CAPS_pubpropertyFtpLogin

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.(Inherited from Publication.)

System_CAPS_pubpropertyFtpPassword

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.(Inherited from Publication.)

System_CAPS_pubpropertyFtpPort

Gets or sets the port of the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP.(Inherited from Publication.)

System_CAPS_pubpropertyFtpSubdirectory

Gets or sets the subdirectory on the File Transfer Protocol (FTP) server computer for publications that allow subscription initialization over FTP.(Inherited from Publication.)

System_CAPS_pubpropertyHasSubscription

Gets whether the publication has one or more subscriptions.(Inherited from Publication.)

System_CAPS_pubpropertyIsExistingObject

Gets whether the object exists on the server or not.(Inherited from ReplicationObject.)

System_CAPS_pubpropertyMaxConcurrentDynamicSnapshots

Gets or sets the maximum number of concurrent Snapshot Agent sessions supported when generating data snapshots when the publication has a parameterized row filter.

System_CAPS_pubpropertyMaxConcurrentMerge

Gets or sets the maximum number of Merge Agents that can synchronize with the publication concurrently.

System_CAPS_pubpropertyMergeArticles

Gets the existing articles in the merge publication.

System_CAPS_pubpropertyMergeSubscriptions

Gets the subscriptions that belong to a merge publication.

System_CAPS_pubpropertyName

Gets or sets the name of the publication.(Inherited from Publication.)

System_CAPS_pubpropertyPartitionGroupsOption

Gets or sets whether precomputed partitions should be used to optimize the synchronization process.

System_CAPS_pubpropertyPostSnapshotScript

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.(Inherited from Publication.)

System_CAPS_pubpropertyPreSnapshotScript

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.(Inherited from Publication.)

System_CAPS_pubpropertyPriority

This API supports the product infrastructure and is not intended to be used directly from your code. Gets the priority of the publication.

System_CAPS_pubpropertyPubId

Gets the value that uniquely identifies the publication. (Inherited from Publication.)

System_CAPS_pubpropertyReplicateDdl

Gets or sets the data definition language (DDL) replication options that determine if DDL changes are replicated.(Inherited from Publication.)

System_CAPS_pubpropertyRetentionPeriod

Gets or sets the amount of time before a subscription expires when the subscription is not synchronized with the publication.(Inherited from Publication.)

System_CAPS_pubpropertyRetentionPeriodUnit

Gets or sets the unit in which the RetentionPeriodUnit property is expressed.

System_CAPS_pubpropertySecureFtpPassword

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.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotAgentExists

Gets if the SQL Server Agent job exists to generate the initial snapshot for this publication.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotAvailable

Gets or sets a value that indicates whether the snapshot files for this publication have been generated and are available to initialize Subscribers.

System_CAPS_pubpropertySnapshotGenerationAgentProcessSecurity

Gets an object that sets the Windows account under which the Snapshot Agent job runs.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotGenerationAgentPublisherSecurity

Gets the security context used by the Snapshot Agent to connect to the Publisher.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotJobId

Gets the Snapshot Agent job ID for the current publication.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotMethod

Gets or sets the data file format of the initial snapshot.(Inherited from Publication.)

System_CAPS_pubpropertySnapshotSchedule

Gets an object that sets the schedule for the Snapshot Agent for the current publication.(Inherited from Publication.)

System_CAPS_pubpropertySqlServerName

Gets the name of the Microsoft SQL Server instance to which this object is connected. (Inherited from ReplicationObject.)

System_CAPS_pubpropertyStatus

Gets or sets the status of the publication.(Inherited from Publication.)

System_CAPS_pubpropertyType

Gets or sets the type of publication.(Inherited from Publication.)

System_CAPS_pubpropertyUserData

Gets or sets an object property that allows users to attach their own data to the object. (Inherited from ReplicationObject.)

System_CAPS_pubpropertyUsesHostName

Gets a value that indicates whether the merge publication has a parameterized row filter that uses the HOST_NAME function to evaluate the partition.

System_CAPS_pubpropertyValidateSubscriberInfo

Gets or sets the functions that are used to define a Subscriber partition of the published data when parameterized row filters are used.

System_CAPS_pubpropertyWebSynchronizationUrl

Gets or sets the URL used with Web synchronization.

NameDescription
System_CAPS_pubmethodAddMergeDynamicSnapshotJob(MergeDynamicSnapshotJob, ReplicationAgentSchedule)

Adds a Snapshot Agent job that generates the filtered data partition for a Subscriber when a parameterized row filter is used.

System_CAPS_pubmethodAddMergeDynamicSnapshotJobForLateBoundComClients(Object, Object)

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.

System_CAPS_pubmethodAddMergePartition(MergePartition)

Defines a Subscriber partition for a merge publication with a parameterized row filter.

System_CAPS_pubmethodBrowseSnapshotFolder()

Returns the complete path of the directory location where snapshot files are generated.

System_CAPS_pubmethodChangeMergeDynamicSnapshotJobScheduleWithJobId(String, ReplicationAgentSchedule)

Modifies the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job ID.

System_CAPS_pubmethodChangeMergeDynamicSnapshotJobScheduleWithJobIdForLateBoundComClients(String, Object)

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.

System_CAPS_pubmethodChangeMergeDynamicSnapshotJobScheduleWithJobName(String, ReplicationAgentSchedule)

Modifies the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber, based on the job name.

System_CAPS_pubmethodChangeMergeDynamicSnapshotJobScheduleWithJobNameForLateBoundComClients(String, Object)

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.

System_CAPS_pubmethodCommitPropertyChanges()

Sends all the cached property change statements to the instance of Microsoft SQL Server.(Inherited from ReplicationObject.)

System_CAPS_pubmethodCopySnapshot(String)

Copies the snapshot files for the merge publication from the snapshot folder to a destination folder.

System_CAPS_pubmethodCreate()

Creates the publication.(Inherited from Publication.)

System_CAPS_pubmethodCreateSnapshotAgent()

Creates the SQL Server Agent job that is used to generate the initial snapshot for the publication, if this job does not already exist.(Inherited from Publication.)

System_CAPS_pubmethodDecouple()

Decouples the referenced replication object from the server. (Inherited from ReplicationObject.)

System_CAPS_pubmethodDisableSynchronizationPartner(String, String, String)

Disables the specified synchronization partner for this merge publication.

System_CAPS_pubmethodEnableSynchronizationPartner(SynchronizationPartner)

Enables a specified synchronization partner for this merge publication.

System_CAPS_pubmethodEnumAllMergeJoinFilters()

Returns all the merge join filters defined on the merge publication.

System_CAPS_pubmethodEnumArticles()

Returns the articles in the publication.(Inherited from Publication.)

System_CAPS_pubmethodEnumMergeDynamicSnapshotJobs()

Returns a list of merge dynamic snapshot jobs.

System_CAPS_pubmethodEnumMergePartitions()

Returns the Subscriber partitions defined for this merge publication.

System_CAPS_pubmethodEnumPublicationAccesses(Boolean)

Returns logins that have access to the Publisher.(Inherited from Publication.)

System_CAPS_pubmethodEnumSubscriptions()

Returns the subscriptions that subscribe to the publication.(Inherited from Publication.)

System_CAPS_pubmethodEnumSynchronizationPartners()

Returns the alternate synchronization partners for this merge publication.

System_CAPS_pubmethodEquals(Object)

(Inherited from Object.)

System_CAPS_pubmethodGenerateFilters()

This API supports the product infrastructure and is not intended to be used directly from your code. Creates filters of the merge publication.

System_CAPS_pubmethodGetHashCode()

(Inherited from Object.)

System_CAPS_pubmethodGetMergeDynamicSnapshotJobScheduleWithJobId(String)

Returns the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber based on the job ID.

System_CAPS_pubmethodGetMergeDynamicSnapshotJobScheduleWithJobName(String)

Returns the schedule for the Snapshot Agent job that generates the filtered data partition for a Subscriber based on the job name.

System_CAPS_pubmethodGetType()

(Inherited from Object.)

System_CAPS_pubmethodGrantPublicationAccess(String)

Adds the specified login to the publication access list (PAL).(Inherited from Publication.)

System_CAPS_pubmethodLoad()

Loads the properties of an existing object from the server. (Inherited from ReplicationObject.)

System_CAPS_pubmethodLoadProperties()

Loads the properties of an existing object from the server. (Inherited from ReplicationObject.)

System_CAPS_pubmethodMakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, MergeSubscriberType, Single)

Registers a merge pull subscription at the Publisher.

System_CAPS_pubmethodReadLastValidationDateTimes(String, String)

Returns information about the most recent subscription validation for a Subscriber.

System_CAPS_pubmethodRefresh()

Reloads the properties of the object. (Inherited from ReplicationObject.)

System_CAPS_pubmethodReinitializeAllSubscriptions(Boolean)

Marks all the subscriptions for reinitialization.

System_CAPS_pubmethodRemove()

Removes an existing publication.(Inherited from Publication.)

System_CAPS_pubmethodRemove(Boolean)

Removes an existing publication even if the Distributor cannot be accessed.(Inherited from Publication.)

System_CAPS_pubmethodRemoveMergeDynamicSnapshotJob(String)

Removes the specified dynamic snapshot job from the merge publication.

System_CAPS_pubmethodRemoveMergePartition(MergePartition)

Removes an existing Subscriber partition defined on the merge publication.

System_CAPS_pubmethodRemovePullSubscription(String, String)

Removes the registration of a Subscriber with a pull subscription to the merge publication.

System_CAPS_pubmethodReplicateUserDefinedScript(String)

Replicates the execution of a user-defined script to the Subscribers of a specified publication.(Inherited from Publication.)

System_CAPS_pubmethodResynchronizeSubscription(String, String, ResynchronizeType, String)

Resynchronizes a merge subscription to a known validation state that you specify.

System_CAPS_pubmethodRevokePublicationAccess(String)

Removes the specified login from the publication access list (PAL).(Inherited from Publication.)

System_CAPS_pubmethodScript(ScriptOptions)

Generates a Transact-SQL script that can be used to re-create the publication as specified by the script options.(Inherited from Publication.)

System_CAPS_pubmethodScriptMergeDynamicSnapshotJob(MergeDynamicSnapshotJob, ReplicationAgentSchedule, ScriptOptions)

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.

System_CAPS_pubmethodScriptMergePartition(MergePartition, ScriptOptions)

Generates a Transact-SQL script that can be used to re-create a Subscriber partition for publications with a parameterized row filter.

System_CAPS_pubmethodScriptPublicationActivation(ScriptOptions)

Generates a Transact-SQL script that, when run, sets the status of a merge publication to active.

System_CAPS_pubmethodStartSnapshotGenerationAgentJob()

Starts the job that generates the initial snapshot for the publication.(Inherited from Publication.)

System_CAPS_pubmethodStopSnapshotGenerationAgentJob()

Attempts to stop a running Snapshot Agent job.(Inherited from Publication.)

System_CAPS_pubmethodToString()

(Inherited from Object.)

System_CAPS_pubmethodValidatePublication(ValidationOption)

Marks all subscriptions for validation during the next synchronization.

System_CAPS_pubmethodValidateSubscription(String, String, ValidationOption)

Marks the specified subscription for validation during the next synchronization.

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.

Legacy Code Example

This example creates a merge publication.

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

			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();
			}

This example changes the properties of a merge publication.

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

			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();
			}

This example deletes a merge publication.

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

			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();
			}

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

Return to top

Community Additions

Show:
© 2015 Microsoft