Compartilhar via


Gerenciar colunas de identidade

Este tópico descreve como gerenciar colunas de identidade no SQL Server 2012 usando o SQL Server Management Studio ou o Transact-SQL. Quando as inserções de Assinante são replicadas de volta ao Publicador, as colunas de identidade devem ser gerenciadas para evitar a atribuição do mesmo valor de identidade para o Assinante e o Publicador. A Replicação pode gerenciar intervalos de identidade automaticamente ou você pode escolher controlar o gerenciamento de intervalo de identidade manualmente. Para obter mais informações sobre as opções de gerenciamento do intervalo de identidade fornecidas pela replicação, consulte Replicar colunas de identidade.

Neste tópico

  • Antes de começar:

    Recomendações

  • Para gerenciar colunas de identidade, usando:

    SQL Server Management Studio

    Transact-SQL

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 do intervalo da identidade para ambas a publicações. Para obter mais informações, consulte "Publicando tabelas em mais de uma publicação” em Publicar dados e objetos de banco de dados.

  • Para criar um número incrementado automaticamente, que possa ser usado em várias tabelas ou ser chamado a partir de aplicativos, sem referenciar tabelas, consulte Números de sequência.

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

Usando 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 este assistente, consulte Crie uma publicação. No Assistente para Nova Publicação:

  • Se você selecionar Publicação de mesclagem ou Publicação transacional com assinaturas atualizáveis na página Tipo de Publicação, selecione gerenciamento automático ou manual do intervalo de identidades (automático, o padrão, é o recomendado). Depois que a tabela é publicada, a propriedade não pode ser modificada, mas outras propriedades relacionadas a ela, sim.

  • Se você selecionar outros tipos de publicação, o gerenciamento de intervalo de identidade deve ser definido como manual.

Modifique intervalos de identidade e limites na guia Propriedades de Propriedades de Artigos - <Artigo>, disponível na caixa de diálogo Propriedades de Publicação - <Publicação>. Para obter mais informações sobre como acessar essa caixa de diálogo, consulte Visualizar e modificar as propriedades da publicação.

Para especificar uma opção de gerenciamento de coluna de identidade

  1. Se o Publicador estiver executando uma versão do SQL Server anterior à SQL Server 2005, na página Tipo de Publicação do Assistente para Nova Publicação, selecionePublicação de mesclagem ou Publicação transacional com assinaturas atualizáveis.

  2. Na página Artigos, selecione uma tabela com uma coluna de identidade.

  3. Clique em Propriedades do Artigo e clique em Definir Propriedades do Artigo Realçado da Tabela.

  4. Na guia Propriedades da caixa de diálogo Propriedades de Artigo - <Artigo>, na seção Gerenciamento de Intervalo de Identidade, defina a propriedade Gerenciar automaticamente os intervalos de identidades como Automático ou Manual (para Publicadores executando o SQL Server 2005 ou posterior), ou Verdadeiro ou Falso (para Publicadores executando uma versão do SQL Server anterior a SQL Server 2005).

  5. Se você selecionou Automático ou Verdadeiro na etapa 4, digite valores para as opções na tabela a seguir. Para obter mais informações sobre como usar essas configurações, consulte a seção "Atribuição de intervalos de identidade" de Replicar colunas de identidade.

    Opção

    Valor

    Descrição

    Tamanho do intervalo do Publicador

    Valor inteiro para tamanho de intervalo (por exemplo, 20000).

    Consulte a seção "Atribuição de intervalos de identidade" de Replicar colunas de identidade.

    Tamanho do intervalo do assinante

    Valor inteiro para tamanho de intervalo (por exemplo, 10000).

    Consulte a seção "Atribuição de intervalos de identidade" de Replicar colunas de identidade.

    Porcentagem do limite de intervalo

    Valor inteiro para porcentagem do limite (por exemplo, 90 equivale a 90 por cento).

    Porcentagem de valores de identidade totais usados em um nó antes que um novo intervalo de identidade seja atribuído.

    ObservaçãoObservação

    Esse valor deve ser especificado, mas é usado somente por: Assinantes usando assinaturas de atualização enfileiradas, e Assinantes para publicações de mesclagem executando SQL Server Compact ou versões anteriores de outras edições do SQL Server. Para obter mais informações, consulte a seção "Atribuição de intervalos de identidade" de Replicar colunas de identidade.

    Valor inicial do intervalo seguinte

    Valor inteiro. Somente leitura.

    O valor no qual o próximo intervalo terá início. Por exemplo, se o intervalo atual for 5001-6000, esse valor será 6001.

    Valor de identidade máximo

    Valor inteiro. Somente leitura.

    O valor maior para a coluna de identidade. Determinado pelo tipo de dados base da coluna.

    Incremento

    Valor inteiro. Somente leitura.

    A quantidade pela qual o número na coluna de identidade deve ser aumentado ou diminuído para cada inserção: normalmente definido como 1.

  6. Clique em OK.

Para modificar intervalos de identidade e limites depois que uma tabela é publicada

  1. Na página Artigos da caixa de diálogo Propriedades da Publicação - <Publicação>, selecione uma tabela com uma coluna de identidade.

  2. Clique em Propriedades do Artigo e, em seguida, clique em Definir Propriedades do Artigo Realçado da Tabela.

  3. Na guia Propriedades da caixa de diálogo Propriedades de Artigo - <Artigo> , na seção Gerenciamento de Intervalo de Identidade, digite valores para uma ou mais das seguintes propriedades: Tamanho do intervalo do Publicador, Tamanho do intervalo do assinante e Porcentagem do limite de intervalo.

  4. Clique em OK.

  5. Clique em OK na caixa de diálogo Propriedades da Publicação - <Publicação>.

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

Usando Transact-SQL

Você pode usar os procedimentos armazenados de replicação para especificar as opções de gerenciamento de intervalo da 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 do banco 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 de auto para @identityrangemanagementoption, o intervalo dos valores da identidade atribuídos ao Publicador para @pub_identity_range, o intervalo dos valores de identidade atribuídos para cada Assinante para @identity_range e a porcentagem dos valores totais de identidade usados, antes que um novo intervalo de identidade seja atribuído para @threshold. Para obter mais informações sobre como definir artigos, consulte Defina um Artigo.

    ObservaçãoObservação

    Certifique-se de que os tipos de dados da coluna de identidade é grande o suficiente para oferece suporte a todos os intervalos de identidades atribuídas a todos os Assinantes.

Para desabilitar o gerenciamento automático de intervalo de identidade ao definir artigos para uma publicação transacional

  1. No Publicador do banco 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 Defina um Artigo.

  2. Atribua intervalos às colunas de artigo de identidade no Assinante para evitar conflitos ao atualizar Assinantes. Para obter mais informações, consulte a seção sobre como atribuir valores para o gerenciamento manual de intervalo da identidade no tópico Replicar colunas de identidade.

Para habilitar o gerenciamento automático de intervalo de identidade ao definir artigos para uma publicação de mesclagem

  • No Publicador do banco de dados de publicação, execute o sp_addmergearticle. Se a tabela de origem sendo publicada tiver uma coluna de identidade, especifique um valor de auto para @identityrangemanagementoption, o intervalo dos valores da identidade atribuídos à assinatura do servidor para @pub_identity_range, o intervalo dos valores de identidade atribuídos ao Publicador e cada assinatura de cliente para @identity_range, e a porcentagem dos valores totais de identidade usados antes que um novo intervalo de identidade seja atribuído para @threshold. Para obter mais informações sobre quando os 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 Defina um Artigo.

    ObservaçãoObservação

    Certifique-se de que o tipo de dado da coluna de identidade é grande o suficiente para oferece 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

  1. No Publicador do banco de dados de publicação, execute o sp_addmergearticle. Especifique um dos valores a seguir para @identityrangemanagementoption:

    • manual - Os intervalos de identidade devem ser atribuídos manualmente para atualizar os 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 Defina um Artigo.

  2. Atribua intervalos às colunas de artigo de identidade no Assinante para evitar conflitos ao atualizar Assinantes.

Para alterar as configurações de gerenciamento de intervalo da identidade para um artigo existente em um instantâneo ou publicação transacional

  1. 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 de intervalo de identidade automático não estará habilitado.

  2. Se o valor de identityrangemanagementoption no conjunto de resultados for 1, altere as configurações como segue:

    • Para alterar os intervalos de identidade atribuídos, execute sp_changearticle no Publicador do 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 os novos intervalos serão atribuídos, execute sp_changearticle no Publicador do banco de dados de publicação. Especifique um valor dethreshold para @property e o novo valor de limite para @value.

Para alterar automaticamente as configurações de gerenciamento de intervalo da identidade para um artigo existente em uma publicação de mesclagem

  1. No Publicador do banco de dados de publicação, execute sp_helpmergearticle e observe o valor de identity_support no conjunto de resultado. Se esse valor for 0, o gerenciamento de intervalo de identidade automático não estará habilitado.

  2. Se o valor de identity_support no conjunto de resultado é 1, altere as configurações como segue:

    • Para alterar os intervalos de identidade atribuídos, execute sp_changemergearticle no Publicador do 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 serão atribuídos, , execute sp_changemergearticle no Publicador do banco de dados de publicação. Especifique um valor dethreshold para @property e o novo valor de limite para @value. Para obter mais informações sobre quando os 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 de intervalo de identidade, execute sp_changemergearticle no Publicador do banco de dados de publicação. Especifique um valor de identityrangemanagementoption para @property e de manual ou nenhum para @value.

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

Consulte também

Conceitos

Replicação transacional ponto a ponto

Conceitos dos procedimentos armazenados do sistema de replicação

Replicar colunas de identidade