SQL Server pulando campo com id auto increment

outubro 22nd, 2015 by franklin Leave a reply »

Isso acontece a partir da versão 2012 do sql server. Quando tu tem uma tabela com campo id auto increment, e o serviço do sql server é parado de forma abrupta, após a inicialização do serviço, a próxima inserção na tabela terá um acréscimo de 1000, para o tipo int, ou 10000, para o tipo bigint no campo id.

FullTable

Na internet encontrei alguns links para o contorno desse problema, um deles é criar uma sequência, conforme descrito no link http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is, e a outra é adicionar o parametro -t272, na inicialização do sql server.

StartupParameter

Pesquisando vi que esse parâmetro não é oficialmente documentado pela Microsoft, e ele parece modificar a engine do sql server. Vi que muita gente fez isso para sanar o problema e não teve problemas com essa configuração, mas não há nenhuma documentação oficial a respeito disso.

Referência:
http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is
http://dba.stackexchange.com/questions/88930/identity-value-jumps-when-restarting-sql-server

Advertisement

4 comments

  1. CLAUDIO JOSE RODRIGUES NETO disse:

    Obrigado pela dica. E você sabe uma maneira de corrigir o que já entrou errado? Obrigado

  2. franklin disse:

    Essa vou ficar devendo :/

  3. franklin disse:

    Aqui o pessoal dá algumas dicas, falam pra criar uma segunda tabela e inserir os registros da primeira na segunda, depois apaga a primeira tabela e renomeia a segunda tabela para o nome da primeira.
    Se for testar isso, não esquece de fazer backup antes
    https://stackoverflow.com/questions/14023574/reordering-identity-primary-key-in-sql-server
    Se fizer e funcionar, avisa aqui? Valeu

Deixe um comentário