Estou usando o SQL Server 2012 e gostaria de manter meus dados pré-existentes, mas fazer com que a coluna ID (identidade) pule 2.000 linhas.
Por que isso está acontecendo? Tenho um cenário em que posso ter transações acontecendo em um servidor em espera que precisarei copiar para o servidor atual. Eu quero que os IDs coincidam. Portanto, não quero novas transações neste servidor que tenham o mesmo ID do meu servidor em espera.
Espero que isso faça sentido!! obrigada
Você poderia fazer isso executando algo como
Isso reenviaria a identidade da sua tabela para 2.000 a mais do que é atualmente e parece que deve resolver o que você está procurando fazer.
Uma coisa a lembrar é que um
ID
não precisa ser gerado pelaIDENTITY
propriedade.O uso
IDENTITY
apresenta desafios, pois assim que as linhas são movidas do servidor em espera para o servidor atual (usandoIDENTITY_INSERT
é claro) com umID
valor maior que o valor de identidade atual, ele se torna o novo valor de identidade atual. O que pode complicar as coisas entre os dois servidores.Para outros problemas, consulte: http://msdn.microsoft.com/en-us/library/ms186775(v=sql.110).aspx
Você pode encontrar um gerador de sequência com NOCACHE ou algum outro mecanismo para gerar
IDs
em cada máquina que oferece mais controle. Por exemplo, você pode definir intervalos de ID que podem durar muito tempo para cada servidor. Por exemplo:Ou você pode sufixar os números para que todos
IDs
do Servidor1 terminem com 1 e todosIDs
do Servidor2 terminem com 2.Ou qualquer outra coisa que o ajude a evitar ou limitar a necessidade de fazer malabarismos com valores constantemente ou manter as duas máquinas cientes do estado uma da outra.