Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como gerenciar colunas de identidade no SQL Server 2014 usando o SQL Server Management Studio ou o Transact-SQL. Quando as inserções do Assinante são replicadas de volta para o Publicador, as colunas de identidade devem ser gerenciadas para evitar a atribuição do mesmo valor de identidade no Assinante e no Publicador. A replicação pode gerenciar intervalos de identidade automaticamente ou você pode optar por lidar manualmente com o gerenciamento de intervalo de identidades. Para obter informações sobre as opções de gerenciamento do intervalo de identidade fornecidas pela replicação, consulte Replicar Colunas de Identidade.
Antes de começar
Recomendações
Ao publicar uma tabela em mais de uma publicação, você deve especificar as mesmas opções de gerenciamento de intervalo de identidade para ambas as publicações. Para obter mais informações, consulte "Publicando tabelas em mais de uma publicação" em objetos de banco de dados e dados de publicação.
Para criar um número de incremento automático que possa ser usado em várias tabelas ou que possa ser chamado de aplicativos sem fazer referência a nenhuma tabela, consulte Números de Sequência.
Como usar o SQL Server Management Studio.
Especifique uma opção de gerenciamento de coluna de identidade na guia Propriedades da caixa de diálogo Propriedades do Artigo -<Artigo> do Assistente para Nova Publicação. Para obter mais informações sobre como usar esse assistente, consulte Criar uma Publicação. No Assistente para Nova Publicação:
Se você selecionar Publicação de mesclagem ou publicação transacional com assinaturas de atualização na página Tipo de Publicação , selecione o gerenciamento automático ou manual do intervalo de identidades (automático, o padrão, é recomendado). Depois que a tabela é publicada, a propriedade não pode ser modificada, mas outras propriedades relacionadas podem ser modificadas.
Se você selecionar outros tipos de publicação, o gerenciamento do intervalo de identidades deverá ser definido como manual.
Modifique os intervalos de identidade e os limites na guia Propriedades das Propriedades do Artigo -<Artigo>, disponível na caixa de diálogo Propriedades da Publicação – <Publicação>. Para obter mais informações sobre como acessar essa caixa de diálogo, consulte Exibir e modificar propriedades de publicação.
Para especificar uma opção de gerenciamento de coluna de identidade
Se o Publicador estiver executando uma versão do SQL Server antes do SQL Server 2005, na página Tipo de Publicação do Assistente para Nova Publicação, selecione Publicação de mesclagem ou publicação transacional com assinaturas atualizadas.
Na página Artigos , selecione uma tabela com uma coluna de identidade.
Clique em Propriedades do Artigo e, em seguida, clique em Definir Propriedades do Artigo de Tabela Realçada.
Na guia Propriedades da caixa de diálogo Propriedades do Artigo – <Artigo> , na seção Gerenciamento do Intervalo de Identidades , defina a propriedade Gerenciamento automático de intervalos de identidade como Automático ou Manual (para Editores que executam o SQL Server 2005 ou posterior) ou True ou False (para editores que executam uma versão do SQL Server antes do SQL Server 2005).
Se você selecionou Automático ou Verdadeiro na etapa 4, insira valores para as opções na tabela a seguir. Para obter mais informações sobre como essas configurações são usadas, consulte a seção "Atribuindo intervalos de identidade" de Replicar Colunas de Identidade.
Opção Valor Descrição Tamanho do intervalo do publicador Valor inteiro para o tamanho do intervalo (por exemplo, 20000). Consulte a seção "Atribuindo intervalos de identidade" de Replicate Identity Columns. Tamanho da faixa do assinante Valor inteiro para o tamanho do intervalo (por exemplo, 10000). Consulte a seção "Atribuindo intervalos de identidade" de Replicar Colunas de Identidade. Percentual de limite de intervalo Valor inteiro para o limite percentual (por exemplo, 90 é equivalente a 90%). Porcentagem dos valores totais de identidade usados em um nó antes que um novo intervalo de identidade seja atribuído.
Observação: esse valor deve ser especificado, mas ele só é usado por: Assinantes usando assinaturas de atualização na fila; e Assinantes para mesclar publicações executando o SQL Server Compact ou versões anteriores de outras edições do SQL Server. Para obter mais informações, consulte a seção "Atribuindo intervalos de identidade" de Replicar Colunas de Identidade.Próximo valor inicial do intervalo Valor inteiro. Somente leitura. O valor em que o próximo intervalo será iniciado. Por exemplo, se o intervalo atual for 5001-6000, esse valor será 6001. Valor máximo de identidade Valor inteiro. Somente leitura. O maior valor para a coluna de identidade. Determinado pelo tipo de dados base da coluna. Incremento Valor inteiro. Somente leitura. O valor pelo qual o número na coluna de identidade deve aumentar ou diminuir para cada inserção: normalmente definido como 1. Clique em OK.
Para modificar intervalos de identidade e limites após a publicação de uma tabela
Na página Artigos da caixa de diálogo Propriedades da Publicação – <Publicação> , selecione uma tabela com uma coluna de identidade.
Clique em Propriedades do Artigo e, em seguida, clique em Definir Propriedades do Artigo de Tabela Realçada.
Na guia Propriedades da caixa de diálogo Propriedades do Artigo – <Artigo>, na seção Gerenciamento de Intervalo de Identidade, insira valores para uma ou mais das seguintes propriedades: tamanho do intervalo do Editor, tamanho do intervalo do Subscritor e percentual de limite do intervalo.
Clique em OK.
Clique em OK na caixa de diálogo Propriedades da Publicação – <Publicação> .
Usando Transact-SQL
Você pode usar procedimentos armazenados de replicação para especificar opções de gerenciamento de intervalo de identidade quando um artigo é criado.
Para habilitar o gerenciamento automático de intervalo de identidade ao definir artigos para uma publicação transacional
No Publicador da base de dados de publicação, execute sp_addarticle. Se a tabela de origem que está sendo publicada tiver uma coluna de identidade, especifique um valor automático para @identityrangemanagementoption, o intervalo de valores de identidade atribuídos ao Publicador para @pub_identity_range, o intervalo de valores de identidade atribuídos a cada Assinante para @identity_range e a porcentagem dos valores totais de identidade usados antes que um novo intervalo de identidade seja atribuído a @threshold. Para obter mais informações sobre como definir artigos, consulte Definir um artigo.
Observação
Verifique se o tipo de dados da coluna de identidade é grande o suficiente para dar suporte ao intervalo total de identidades atribuídas a todos os Assinantes.
Para desabilitar o gerenciamento automático do intervalo de identidades ao definir artigos para uma publicação transacional
No Publicador da base de dados de publicação, execute sp_addarticle. Especifique um valor de manual para @identityrangemanagementoption. Para obter mais informações sobre como definir artigos, consulte Definir um artigo.
Atribua intervalos às colunas de identidade no assinante para evitar conflitos ao atualizar assinantes. Para obter mais informações, consulte a seção sobre como atribuir intervalos para o gerenciamento manual do intervalo de identidades no tópico Replicar Colunas de Identidade.
Para habilitar o gerenciamento automático do intervalo de identidades ao definir artigos para uma publicação de mesclagem
No banco de dados de publicação no Publicador, execute sp_addmergearticle. Se a tabela de origem que está sendo publicada tiver uma coluna de identidade, especifique o valor "auto" para @identityrangemanagementoption, o intervalo de valores de identidade atribuídos a uma assinatura de servidor para @pub_identity_range, o intervalo de valores de identidade atribuídos ao Publicador e a cada assinatura de cliente para @identity_range, e a porcentagem dos valores totais de identidade utilizados antes que um novo intervalo de identidade seja atribuído para @threshold. Para obter mais informações sobre quando novos intervalos de identidade são atribuídos, consulte Atribuindo intervalos de identidade no tópico Replicar Colunas de Identidade. Para obter mais informações sobre como definir artigos, consulte Definir um artigo.
Observação
Verifique se o tipo de dados da coluna de identidade é grande o suficiente para dar suporte ao intervalo total de identidades atribuídas a todos os Assinantes, especialmente para Assinantes com assinaturas de servidor.
Para desabilitar o gerenciamento automático de intervalo de identidade ao definir artigos para uma publicação de mesclagem
No banco de dados de publicação no Publicador, execute sp_addmergearticle. Especifique um dos seguintes valores para @identityrangemanagementoption:
manual – Intervalos de identidade devem ser atribuídos manualmente para atualizar assinantes.
none - As colunas de identidade no Publicador não serão definidas como colunas de identidade no Assinante.
Para obter mais informações sobre como definir artigos, consulte Definir um artigo.
Atribua intervalos às colunas de identificação do artigo no Assinante para evitar conflitos durante a atualização dos Assinantes.
Para alterar as configurações automáticas de gerenciamento de intervalo de identidade para um artigo existente em um instantâneo ou publicação transacional
No Publicador do banco de dados de publicação, execute sp_helparticle e observe o valor de identityrangemanagementoption no conjunto de resultados. Se esse valor for 0, o gerenciamento automático do intervalo de identidades não estará habilitado.
Se o valor de identityrangemanagementoption no conjunto de resultados for 1, altere as configurações da seguinte maneira:
Para alterar os intervalos de identidade atribuídos, execute sp_changearticle no Publicador no banco de dados de publicação. Especifique um valor de identity_range ou pub_identity_range para @property e o novo valor de intervalo para @value.
Para alterar o limite em que novos intervalos são atribuídos, execute sp_changearticle no Publicador no banco de dados de publicação. Especifique um valor de limite para @property e o novo valor de limite para @value.
Para alterar as configurações automáticas de gerenciamento de intervalo de identidade para um artigo existente em uma publicação de mesclagem
No Publicador do banco de dados de publicação, execute sp_helpmergearticle e observe o valor de identity_support no conjunto de resultados. Se esse valor for 0, o gerenciamento automático do intervalo de identidades não estará habilitado.
Se o valor de identity_support no conjunto de resultados for 1, altere as configurações da seguinte maneira:
Para alterar os intervalos de identidade atribuídos, execute sp_changemergearticle no Publicador no banco de dados de publicação. Especifique um valor de identity_range ou pub_identity_range para @property e o novo valor de intervalo para @value.
Para alterar o limite no qual novos intervalos são atribuídos, execute sp_changemergearticle no Publicador no banco de dados de publicação. Especifique um valor de limite para @property e o novo valor de limite para @value. Para obter mais informações sobre quando novos intervalos de identidade são atribuídos, consulte Atribuindo intervalos de identidade no tópico Replicar Colunas de Identidade.
Para desabilitar o gerenciamento automático do intervalo de identidades, execute sp_changemergearticle no Publicador no banco de dados de publicação. Especifique um valor de identityrangemanagementoption para @property e manual ou nenhum para @value.
Consulte Também
Replicação transacional entre pares
Conceitos de procedimentos armazenados do sistema de replicação
Replicar colunas de identidade