
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?
É 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é!
[...] seus IdClientes, com uma sequencia própria dele, neste caso, as procedures farão uso da opção SET IDENTITY_INSERT. E dai? Como já tenho permissão de execução de procedures no sistema, nada muda certo? ERRADO. [...]
Silas muito bom o seu Blog parabéns Sucesso eu estou em busca da certificação .