Auto Incremento

24/06/2004

0

Olá Amigos, sou novato em Sql Server, mais, criei um campo Auto Incremento, só que quando cancelo a operação de insert na tabela, o contador armazena aquele número e salta pro próximo, por exemplo. Clico em NOVO, aparece o código 204, quando clico no cancelar, ele auto incrementa o código, mesmo sem eu ter salvo o registro, se eu clicar em NOVO de novo, o auto incremento vai para 205. Como fço para que isso não ocorra ?


Marcos.rio

Marcos.rio

Responder

Posts

04/07/2004

Fer_nanda

Minha sugestão é não utilizar o auto incremento. Vc pode tratar o código fazendo uma qry:
  select max(codigo)+1 as ultimocodigo from tabela


Assim vc sempre terá o último código e evita esses tipos de transtornos.
Até


Responder

12/07/2004

Fabiano_monteiro

Marcos

Tudo bem?

Apenas complementando a dica da Fer_nanda, complemente com o seguinte:

select ISNULL(max(codigo)+1,1) as ultimocodigo from tabela

Com o Isnull vc garante que irá retornar algum valor. No caso de sua tabela estar vazia retornará ´nulo´ para vc. E com a função acima, estando nulo, retornará 1. Correto?

Abração


Responder

12/07/2004

Marcus.magalhaes

Utilize o auto incremento sim, pq se vc criar um incremento na mão vc pode ter 2 problemas :

1) Duplicate key, pq 2 ou mais conexões podem ler o mesmo registro antes q uma delas consiga realizar o insert, pois o select faz lock compartilhado.
2) Fazendo o incremento na mão vc perde tempo, ou seja, sua performance é degradada.

Portanto é preferível q vc perca a sequência do que o cliente tomar erro de chave duplicada.

Att,


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar