Criar uma assinatura push

Este tópico descreve como criar uma assinatura push no SQL Server 2012 usando o SQL Server Management Studio, Transact-SQL ou RMO (Replication Management Objects). Para obter informações sobre como criar uma assinatura push para um Assinante não SQL Server, consulte Criar uma assinatura para um Assinante não SQL Server.

Neste tópico

  • Para criar uma assinatura push usando:

    SQL Server Management Studio

    Transact-SQL

    RMO (Replication Management Objects)

Usando o SQL Server Management Studio

Crie uma assinatura push no Publicador ou Assinante, usando o Assistente para Novas Assinaturas. Siga as páginas no assistente para:

  • Especificar o Publicador e a publicação.

  • Selecione onde os agentes de replicação executarão. Para uma assinatura push, selecione Executar todos os agentes no Distribuidor (assinaturas push) na página Local do Agente de Distribuição ou na página Local do Agente de Mesclagem, dependendo do tipo de publicação.

  • Especifique Assinantes e bancos de dados de assinatura.

  • Especifique os logons e senhas usadas para conexões feitas por agentes de replicação:

    • Para assinaturas para instantâneos e publicações transacionais, especifique as credenciais na página Segurança do Agente de Distribuição.

    • Para assinaturas para publicações de mesclagem, especifique as credenciais na página Segurança do Agente de Mesclagem.

    Para obter informações sobre as permissões exigidas por cada agente, consulte Modelo de segurança do agente de replicação.

  • Especifique uma agenda de sincronização e quando o Assinante deve ser inicializado.

  • Especifique opções adicionais para publicações de mesclagem: tipo de assinatura e valores para filtragem com parâmetros.

  • Especifique opções adicionais para publicações transacionais que permitem assinaturas de atualização: se os Assinantes devem confirmar alterações no Publicador imediatamente ou gravá-las em uma fila; credenciais usadas do Assinante para o Publicador.

  • Opcionalmente, faça o script da assinatura.

Para criar uma assinatura push do Publicador

  1. Conecte-se ao Publicador no Microsoft SQL Server Management Studio e, depois, expanda o nó do servidor.

  2. Expanda a pasta Replicação e, em seguida, a pasta Publicações Locais.

  3. Clique com o botão direito do mouse na publicação na qual você deseja criar uma ou mais assinaturas e clique em Novas Assinaturas.

  4. Complete as páginas no Assistente para Novas Assinaturas.

Para criar uma assinatura push do Assinante

  1. Conecte-se ao Assinante no SQL Server Management Studio e expanda o nó do servidor.

  2. Expanda a pasta Replicação.

  3. Clique com o botão direito do mouse na pasta Assinaturas Locais e depois clique em Novas Assinaturas.

  4. Na página Publicação do Assistente para Novas Assinaturas, selecione <Encontrar Editor SQL Server> ou <Encontrar Editor Oracle> na lista suspensa Publicador .

  5. Conecte-se ao Publicador na caixa de diálogo Conectar ao Servidor.

  6. Selecione uma publicação na página Publicação.

  7. Complete as páginas no Assistente para Novas Assinaturas.

Ícone de seta usado com o link Voltar ao Início[Top]

Usando Transact-SQL

As assinaturas push podem ser criadas de forma programada, usando procedimentos armazenados de replicação. Os procedimentos armazenados usados dependem do tipo de publicação ao qual a assinatura pertence.

Observação sobre segurançaObservação sobre segurança

Quando possível, solicite aos usuários que insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, você deverá proteger o arquivo para impedir acesso não autorizado.

Para criar uma assinatura push em um instantâneo ou publicação transacional

  1. No Publicador do banco de dados de publicação, verifique se a publicação oferece suporte às assinaturas push, executando sp_helppublication.

    • Se o valor de allow_push for 1, as assinaturas push terão suporte.

    • Se o valor de allow_push for 0, execute sp_changepublication, especificando allow_push para @property e true para @value.

  2. No Publicador do banco de dados da publicação, execute sp_addsubscription. Especifique @publication, @subscriber e @destination_db. Especifique um valor push para @subscription_type. Para obter mais informações sobre como atualizar assinaturas, consulte Criar uma assinatura atualizável em uma publicação transacional.

  3. No Publicador do banco de dados de publicação, execute sp_addpushsubscription_agent. Especifique o seguinte:

    • Os parâmetros @subscriber, @subscriber_db e @publication.

    • As credenciais do Microsoft Windows com as quais o Agente de Distribuição do Distribuidor é executado para @job_login e @job_password.

      ObservaçãoObservação

      As conexões realizadas com Autenticação Integrada do Windows sempre usam as credenciais do Windows especificadas por @job_login e @password. O Agente de Distribuição sempre faz a conexão local com o Distribuidor usando a Autenticação Integrada do Windows. Por padrão, o agente se conecta ao Assinante usando a Autenticação Integrada do Windows.

    • (Opcional) Valor de 0 para @subscriber_security_mode e informações de logon do Microsoft SQL Server para @subscriber_login e @subscriber_password. Especifique esses parâmetros se for necessário usar a Autenticação do SQL Server para conexão com o Assinante.

    • Agenda para o trabalho do Agente de Distribuição para essa assinatura. Para obter mais informações, consulte Especificar agendas de sincronização.

    Observação sobre segurançaObservação sobre segurança

    Ao criar uma assinatura push em um Publicador com um Distribuidor remoto, os valores especificados para todos os parâmetros, inclusive job_login e job_password são enviados para o Distribuidor como texto sem-formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Para criar uma assinatura push para publicação de mesclagem

  1. No Publicador do banco de dados de publicação, verifique se a publicação oferece suporte às assinaturas push, executando sp_helpmergepublication.

    • Se o valor de allow_push for 1, a publicação dará suporte às assinaturas push.

    • Se o valor de allow_push não for 1, execute sp_changemergepublication, especificando allow_push para @property e true para @value.

  2. No Publicador, no banco de dados de publicação, execute sp_addmergesubscription, especificando os seguintes parâmetros:

    • @publication. Esse é o nome da publicação.

    • @subscriber_type. Para uma assinatura de cliente, especifique local e, para uma assinatura de servidor, especifique global.

    • @subscription_priority. Para uma assinatura de servidor, especifique uma prioridade para a assinatura de (0,00 a 99,99).

      Para obter mais informações, consulte Detecção e resolução de conflito de replicação de mesclagem avançada.

  3. No Publicador, no banco de dados da publicação, execute sp_addmergepushsubscription_agent. Especifique o seguinte:

    • Os parâmetros @subscriber, @subscriber_db e @publication.

    • As credenciais do Windows sob as quais o Agente de Mesclagem no Distribuidor é executado para o @job_login e @job_password.

      ObservaçãoObservação

      As conexões realizadas com Autenticação Integrada do Windows sempre usam as credenciais do Windows especificadas por @job_login e @password. O Agente de Mesclagem sempre faz a conexão local com o Distribuidor usando a Autenticação Integrada do Windows. Por padrão, o agente se conecta ao Assinante usando a Autenticação Integrada do Windows.

    • (Opcional) Valor de 0 para @subscriber_security_mode e informações de logon do SQL Server para @subscriber_login e @subscriber_password. Especifique esses parâmetros se for necessário usar a Autenticação do SQL Server para conexão com o Assinante.

    • (Opcional) Valor de 0 para @publisher_security_mode e informações de logon do SQL Server para @publisher_login e @publisher_password. Especifique esses valores se for necessário usar a Autenticação do SQL Server para conexão com o Publicador.

    • Agenda para o trabalho do Agente de Mesclagem para essa assinatura. Para obter mais informações, consulte Especificar agendas de sincronização.

    Observação sobre segurançaObservação sobre segurança

    Ao criar uma assinatura push em um Publicador com um Distribuidor remoto, os valores especificados para todos os parâmetros, inclusive job_login e job_password são enviados para o Distribuidor como texto sem-formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Exemplos (Transact-SQL)

O exemplo a seguir cria uma nova assinatura push para uma publicação transacional. Os valores de logon e senha são fornecidos em tempo de execução, usando as variáveis de script sqlcmd.

-- 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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2012Replica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks2012]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

O exemplo a seguir cria uma nova assinatura push para uma publicação de mesclagem. Os valores de logon e senha são fornecidos em tempo de execução, usando as variáveis de script sqlcmd.

-- 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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Ícone de seta usado com o link Voltar ao Início[Top]

Usando o RMO (Replication Management Objects)

Crie assinaturas push de forma programada, usando RMO (Replication Management Objects). As classes RMO usadas para criar uma assinatura push dependem do tipo de publicação no qual a assinatura é criada.

Observação sobre segurançaObservação sobre segurança

Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for preciso armazenar credenciais, use os serviços criptográficos fornecidos pelo Microsoft .NET Framework do Windows.

Para criar uma assinatura push em um instantâneo ou publicação transacional

  1. Crie uma conexão com o Publicador usando a classe ServerConnection.

  2. Crie uma instância da classe TransPublication usando a conexão do Publicador da etapa 1. Especifique Name, DatabaseName, e ConnectionContext.

  3. Chame o método LoadProperties. Se esse método retornar false, as propriedades da Etapa 2 estão incorretas ou a publicação não existe no servidor.

  4. Realize uma lógica AND de bit a bit (& no Visual C# e And no Visual Basic) entre a propriedade Attributes e AllowPush. Se o resultado for None, defina Attributes como o resultado de um OU lógico bit a bit ( |no Visual C# e Or no Visual Basic) entre Attributes e AllowPush. Em seguida, chame CommitPropertyChanges para ativar assinaturas push.

  5. Se não houver banco de dados de assinatura, crie-o usando a classe Database. Para obter mais informações, consulte Criando, alterando e removendo bancos de dados.

  6. Crie uma instância da classe TransSubscription.

  7. Defina as seguintes propriedades de assinatura:

  8. Chame o método Create.

    Observação sobre segurançaObservação sobre segurança

    Ao criar uma assinatura push no Publicador com um Distribuidor remoto, os valores fornecidos para todas as propriedades, inclusive SynchronizationAgentProcessSecurity, são enviados para o Distribuidor como texto sem-formatação. Criptografe a conexão entre o Publicador e seu Distribuidor remoto antes de executar o método Create. Para obter mais informações, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Para criar uma assinatura push para publicação de mesclagem

  1. Crie uma conexão com o Publicador usando a classe ServerConnection.

  2. Crie uma instância da classe MergePublication usando a conexão com o Publicador da etapa 1. Especifique Name, DatabaseName, e ConnectionContext.

  3. Chame o método LoadProperties. Se esse método retornar false, as propriedades da Etapa 2 estão incorretas ou a publicação não existe no servidor.

  4. Realize uma lógica AND de bit a bit (& no Visual C# e And no Visual Basic) entre a propriedade Attributes e AllowPush. Se o resultado for None, defina Attributes como o resultado de um OU lógico bit a bit ( |no Visual C# e Or no Visual Basic) entre Attributes e AllowPush. Em seguida, chame CommitPropertyChanges para ativar assinaturas push.

  5. Se não houver banco de dados de assinatura, crie-o usando a classe Database. Para obter mais informações, consulte Criando, alterando e removendo bancos de dados.

  6. Crie uma instância da classe MergeSubscription.

  7. Defina as seguintes propriedades de assinatura:

  8. Chame o método Create.

    Observação sobre segurançaObservação sobre segurança

    Ao criar uma assinatura push no Publicador com um Distribuidor remoto, os valores fornecidos para todas as propriedades, inclusive SynchronizationAgentProcessSecurity, são enviados para o Distribuidor como texto sem-formatação. Criptografe a conexão entre o Publicador e seu Distribuidor remoto antes de executar o método Create. Para obter mais informações, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Exemplos (RMO)

Esse exemplo cria uma nova assinatura push para uma publicação transacional. As credenciais da conta do Windows usadas para executar o trabalho do Agente de Distribuição são passadas em tempo de execução.

            // Define the Publisher, publication, and databases.
            string publicationName = "AdvWorksProductTran";
            string publisherName = publisherInstance;
            string subscriberName = subscriberInstance;
            string subscriptionDbName = "AdventureWorks2012Replica";
            string publicationDbName = "AdventureWorks2012";

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

            // Create the objects that we need.
            TransPublication publication;
            TransSubscription subscription;

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

                // Ensure that the publication exists and that 
                // it supports push subscriptions.
                publication = new TransPublication();
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;
                publication.ConnectionContext = conn;

                if (publication.IsExistingObject)
                {
                    if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
                    {
                        publication.Attributes |= PublicationAttributes.AllowPush;
                    }

                    // Define the push subscription.
                    subscription = new TransSubscription();
                    subscription.ConnectionContext = conn;
                    subscription.SubscriberName = subscriberName;
                    subscription.PublicationName = publicationName;
                    subscription.DatabaseName = publicationDbName;
                    subscription.SubscriptionDBName = subscriptionDbName;

                    // Specify the Windows login credentials for the Distribution Agent job.
                    subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
                    subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

                    // By default, subscriptions to transactional publications are synchronized 
                    // continuously, but in this case we only want to synchronize on demand.
                    subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;

                    // Create the push subscription.
                    subscription.Create();
                }
                else
                {
                    // Do something here if the publication does not exist.
                    throw new ApplicationException(String.Format(
                        "The publication '{0}' does not exist on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here.
                throw new ApplicationException(String.Format(
                    "The subscription to {0} could not be created.", 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 = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

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

' Create the objects that we need.
Dim publication As TransPublication
Dim subscription As TransSubscription

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

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New TransPublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New TransSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName

        ' Specify the Windows login credentials for the Distribution Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' By default, subscriptions to transactional publications are synchronized 
        ' continuously, but in this case we only want to synchronize on demand.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand

        ' Create the push subscription.
        subscription.Create()
    Else
        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If

Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
        "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Esse exemplo cria uma nova assinatura push para uma publicação de mesclagem. As credenciais da conta do Windows usadas para executar o trabalho do Agente de Mesclagem são passadas em tempo de execução.

            // Define the Publisher, publication, and databases.
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publisherName = publisherInstance;
            string subscriberName = subscriberInstance;
            string subscriptionDbName = "AdventureWorks2012Replica";
            string publicationDbName = "AdventureWorks2012";
            string hostname = @"adventure-works\garrett1";

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

            // Create the objects that we need.
            MergePublication publication;
            MergeSubscription subscription;

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

                // Ensure that the publication exists and that 
                // it supports push subscriptions.
                publication = new MergePublication();
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;
                publication.ConnectionContext = conn;

                if (publication.IsExistingObject)
                {
                    if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
                    {
                        publication.Attributes |= PublicationAttributes.AllowPush;
                    }

                    // Define the push subscription.
                    subscription = new MergeSubscription();
                    subscription.ConnectionContext = conn;
                    subscription.SubscriberName = subscriberName;
                    subscription.PublicationName = publicationName;
                    subscription.DatabaseName = publicationDbName;
                    subscription.SubscriptionDBName = subscriptionDbName;
                    subscription.HostName = hostname;

                    // Set a schedule to synchronize the subscription every 2 hours
                    // during weekdays from 6am to 10pm.
                    subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
                    subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
                    subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
                    subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
                    subscription.AgentSchedule.FrequencySubDayInterval = 2;
                    subscription.AgentSchedule.ActiveStartDate = 20051108;
                    subscription.AgentSchedule.ActiveEndDate = 20071231;
                    subscription.AgentSchedule.ActiveStartTime = 060000;
                    subscription.AgentSchedule.ActiveEndTime = 100000;

                    // Specify the Windows login credentials for the Merge Agent job.
                    subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
                    subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

                    // Create the push subscription.
                    subscription.Create();
                }
                else
                {
                    // Do something here if the publication does not exist.
                    throw new ApplicationException(String.Format(
                        "The publication '{0}' does not exist on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here.
                throw new ApplicationException(String.Format(
                    "The subscription to {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

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

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

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

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Create the push subscription.
        subscription.Create()
    Else

        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
    "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Ícone de seta usado com o link Voltar ao Início[Top]

Consulte também

Conceitos

Exibir e modificar propriedades de assinatura push

Práticas recomendadas em relação à segurança de replicação

Crie uma publicação

Conceitos de Replication Management Objects

Criar uma assinatura push

Sincronizar uma assinatura push

Assinar publicações

Usar sqlcmd com variáveis de script