Comportamento do IDENTITY no SQL Server

desafio_IDENTITY_1

A pergunta do dia é para você DBA que já tem alguns anos de estrada:

Tenho um campo identity em minha tabela. O incremento é de 1 em 1. O último registro da minha sequencia é 50. Preciso fazer uma inserção fora da sequencia, então utilizo o SET IDENTITY INSERT ON e insiro um registro com o sequencial 800. Executo o SET IDENTITY INSERT OFF para habilitar novamente minha sequencia automática.

Quando inserir o próximo registro na tabela, qual será o ID gerado?

3 thoughts on “Comportamento do IDENTITY no SQL Server

  1. É 51! Uma boa idéia! mas… confesso que roubei! Abri o console e reproduzi o teste. Estou enferrujado. Mas foi legal pois pude relembrar um comportamento curioso. No meu primeiro teste o ID gerado foi 52. Achei estranho mas lembrei que logo após o SET IDENTITY INSERT OFF minha primeira tentativa de insert falhou pois a segunda coluna que era varchar(1) seria truncada. Mesmo o com a falha do insert não houve digamos um “rollback” do incremento do identity da coluna. Curioso né!