Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Azure SQL Database
En este tema se describe cómo eliminar una suscripción de inserción en SQL Server mediante SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO).
En este tema
Para eliminar una suscripción de inserción con:
Elimine una suscripción de inserción en el publicador (desde la carpeta Publicaciones locales en SQL Server Management Studio) o el suscriptor (desde la carpeta Suscripciones locales). Al eliminar una suscripción no se quitan los objetos ni los datos de la suscripción, y deben quitarse manualmente.
Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Expanda la publicación asociada con la suscripción que desea eliminar.
Haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Eliminar.
En el cuadro de diálogo de confirmación, seleccione si desea conectarse al suscriptor para eliminar la información de suscripciones. Si desactiva la casilla Conectar a suscriptor , debe conectar al suscriptor posteriormente para eliminar la información.
Conéctese al suscriptor en SQL Server Management Studio y expanda el nodo de servidor.
Expanda la carpeta Replicación y, a continuación, la carpeta Suscripciones locales.
Haga clic con el botón secundario en la suscripción que desea eliminar y, a continuación, haga clic en Eliminar.
En el cuadro de diálogo de confirmación, seleccione si desea conectarse al publicador para eliminar la información de suscripciones. Si desactiva la casilla Conectar al publicador , deberá conectarse al publicador más adelante para eliminar la información.
Las suscripciones de inserción pueden eliminarse mediante programación con procedimientos almacenados de replicación. Los procedimientos almacenados que se usen dependerán del tipo de publicación a la que corresponda la suscripción.
En la base de datos de publicación del publicador, ejecute sp_dropsubscription (Transact-SQL). Especifique @publication y @subscriber. Especifique un valor de all para @article. (Opcional) Si no se puede tener acceso al Distribuidor, especifique un valor de 1 para @ignore_distributor para eliminar la suscripción sin quitar los objetos relacionados en el Distribuidor.
En la base de datos de suscripciones del suscriptor, ejecute sp_subscription_cleanup (Transact-SQL) para quitar los metadatos de replicación restantes en la base de datos de suscripciones.
En el publicador, ejecute sp_dropmergesubscription (Transact-SQL) y especifique @publication, @subscriber y @subscriber_db. (Opcional) Si no se puede tener acceso al Distribuidor, especifique un valor de 1 para @ignore_distributor para eliminar la suscripción sin quitar los objetos relacionados en el Distribuidor.
En la base de datos de suscripciones del suscriptor, ejecute sp_mergesubscription_cleanup (Transact-SQL). Especifique @publisher, @publisher_dby @publication. Esto quita los metadatos de mezcla de la base de datos de suscripciones.
En este ejemplo se elimina una suscripción de inserción a una publicación transaccional.
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- This batch is executed at the Publisher to remove
-- a pull or push subscription to a transactional publication.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
USE [AdventureWorks2022]
EXEC sp_dropsubscription
@publication = @publication,
@article = N'all',
@subscriber = @subscriber;
GO
En este ejemplo se elimina una suscripción de inserción a una publicación de combinación.
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- This batch is executed at the Publisher to remove
-- a pull or push subscription to a merge publication.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2022Replica';
USE [AdventureWorks2022]
EXEC sp_dropmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB;
GO
Las clases RMO que se usan para eliminar una suscripción de inserción dependen del tipo de publicación a la se suscribe dicha suscripción.
Cree una conexión al publicador mediante la clase ServerConnection .
Cree una instancia de la clase TransSubscription.
Establezca las propiedades PublicationName, SubscriptionDBName, SubscriberNamey DatabaseName .
Establezca la conexión ServerConnection del paso 1 para la propiedad ConnectionContext .
Compruebe la propiedad IsExistingObject para asegurarse de que la suscripción existe. Si el valor de esta propiedad es false, significa que las propiedades de suscripción del paso 2 se definieron incorrectamente o bien, que la suscripción no existe.
Llame al método Remove.
Cree una conexión al publicador mediante la clase ServerConnection .
Cree una instancia de la clase MergeSubscription.
Establezca las propiedades PublicationName, SubscriptionDBName, SubscriberNamey DatabaseName .
Establezca la conexión ServerConnection del paso 1 para la propiedad ConnectionContext .
Compruebe la propiedad IsExistingObject para asegurarse de que la suscripción existe. Si el valor de esta propiedad es false, significa que las propiedades de suscripción del paso 2 se definieron incorrectamente o bien, que la suscripción no existe.
Llame al método Remove.
Las suscripciones de inserción se pueden eliminar mediante programación utilizando Replication Management Objects (RMO).
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksProductTran";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2022Replica";
string publicationDbName = "AdventureWorks2022";
//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
// Create the objects that we need.
TransSubscription subscription;
try
{
// Connect to the Subscriber.
conn.Connect();
// Define the pull subscription.
subscription = new TransSubscription();
subscription.ConnectionContext = conn;
subscription.SubscriberName = subscriberName;
subscription.PublicationName = publicationName;
subscription.SubscriptionDBName = subscriptionDbName;
subscription.DatabaseName = publicationDbName;
// Delete the pull subscription, if it exists.
if (subscription.IsExistingObject)
{
// Delete the pull subscription at the Subscriber.
subscription.Remove();
}
else
{
throw new ApplicationException(String.Format(
"The subscription to {0} does not exist on {1}",
publicationName, subscriberName));
}
}
catch (Exception ex)
{
// Implement the appropriate error handling here.
throw new ApplicationException(String.Format(
"The subscription to {0} could not be deleted.", publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2022Replica"
Dim publicationDbName As String = "AdventureWorks2022"
'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
' Create the objects that we need.
Dim subscription As TransSubscription
Try
' Connect to the Subscriber.
conn.Connect()
' Define the pull subscription.
subscription = New TransSubscription()
subscription.ConnectionContext = conn
subscription.SubscriberName = subscriberName
subscription.PublicationName = publicationName
subscription.SubscriptionDBName = subscriptionDbName
subscription.DatabaseName = publicationDbName
' Delete the pull subscription, if it exists.
If subscription.IsExistingObject Then
' Delete the pull subscription at the Subscriber.
subscription.Remove()
Else
Throw New ApplicationException(String.Format( _
"The subscription to {0} does not exist on {1}", _
publicationName, subscriberName))
End If
Catch ex As Exception
' Implement the appropriate error handling here.
Throw New ApplicationException(String.Format( _
"The subscription to {0} could not be deleted.", publicationName), ex)
Finally
conn.Disconnect()
End Try
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyCursos
Módulo
Obtenga información sobre cómo administrar los centros de suscripciones y la suscripción doble en Dynamics 365 Customer Insights - Journeys. Este módulo solo se aplica a características de marketing saliente.
Documentación
Eliminar una suscripción de extracción - SQL Server
Eliminar una suscripción de extracción
Eliminar una publicación - SQL Server
Aprenda a eliminar una publicación en SQL Server mediante SQL Server Management Studio, Transact-SQL o Replication Management Objects.
sp_droppublication (Transact-SQL) - SQL Server
Quita una publicación y su Agente de instantáneas asociado. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.