Export (0) Print
Expand All

Publication.Remove Method

 

Applies To: SQL Server 2016 Preview

Removes an existing publication.

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

NameDescription
System_CAPS_pubmethodRemove()

Removes an existing publication.

System_CAPS_pubmethodRemove(Boolean)

Removes an existing publication even if the Distributor cannot be accessed.

Legacy Code Example

This example deletes a transactional publication.

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

			TransPublication publication;
			ReplicationDatabase publicationDb;

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

			try
			{
				conn.Connect();

				// Set the required properties for the transactional publication.
				publication = new TransPublication();
				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 transactional publications exists,
				// disable publishing on the database.
				publicationDb = new ReplicationDatabase(publicationDbName, conn);
				if (publicationDb.LoadProperties())
				{
					if (publicationDb.TransPublications.Count == 0)
					{
						publicationDb.EnabledTransPublishing = 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();
			}

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

Publication.Remove Method ()

Removes an existing publication.

public void Remove()

The Remove method removes the publication and all publication metadata at the Publisher and Distributor. Use the Remove method passing a value of true to remove a publication when the Distributor is offline or cannot be accessed.

The Remove method can only be called by members of the sysadmin fixed server role at the Publisher or by members of the db_owner fixed database role on the publication database.

Calling Remove is equivalent to executing sp_droppublication (Transact-SQL) or sp_dropmergepublication (Transact-SQL).

Legacy Code Example

This example deletes a transactional publication.

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

			TransPublication publication;
			ReplicationDatabase publicationDb;

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

			try
			{
				conn.Connect();

				// Set the required properties for the transactional publication.
				publication = new TransPublication();
				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 transactional publications exists,
				// disable publishing on the database.
				publicationDb = new ReplicationDatabase(publicationDbName, conn);
				if (publicationDb.LoadProperties())
				{
					if (publicationDb.TransPublications.Count == 0)
					{
						publicationDb.EnabledTransPublishing = 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();
			}

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

Publication.Remove Method (Boolean)

Removes an existing publication even if the Distributor cannot be accessed.

public void Remove(
	bool force
)

Parameters

force
Type: System.Boolean

A Boolean value that indicates whether or not a publication can be removed even if the Distributor cannot be accessed. Specify a value of true to remove a publication when the Distributor is offline or when reinstalling the Distributor.

The Remove method can only be called by members of the sysadmin fixed server role at the Publisher or by members of the db_owner fixed database role on the publication database.

Calling Remove is equivalent to executing sp_droppublication (Transact-SQL) or sp_dropmergepublication (Transact-SQL).

Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft