Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eriva_br

inserindo um valor para um campo IDENTITY

Recommended Posts

inserindo um valor para um campo identity manualmente:

 

Imagine uma situação qualquer onde é necessário inserir um valor manualmente para o campo identity, uma dica é desabilitar o atributo identity para a inserção e logo após a inserção habilitar o atributo.

para desabilitar:

set IDENTITY_INSERT nomeTabela on

 

para habilitar:

set IDENTITY_INSERT nomeTabela off

 

OBS.: se você esquecer de habilitar o campo identity não tem problema, pois o comando só vale para a conexão atual.

 

um pequeno exemplo:

set nocount on	 --criando tabela para testes	 create table Teste (campoID int identity, Nome varchar(30))	 --inserindo dados iniciais	 insert into Teste (Nome) values ('Daniela Hantuchova') --o campoID recebe o valor 1 automaticamente	 insert into Teste (Nome) values ('Elena Dementieva') --o campoID recebe o valor 2 automaticamente	 --consultando a tabela de testes após a inserção dos dados iniciais	 select * from Teste	 	 --desabilitando o campo identity	 set IDENTITY_INSERT Teste on	 --inserindo ID manualmente, vamos mudar para 10	 insert into Teste (campoID, Nome) values (10, 'Maria Sharapova')	 --habilitando o campo identity	 set IDENTITY_INSERT Teste off	 	 --inserindo mais um registro com o campo identity em seu estado original (automático)	 insert into Teste (Nome) values ('Vanessa Menga') --o campoID recebe o valor 11 automaticamente	 --consultando a tabela após as últimas inserções	 select * from Teste	 	 --destruindo tabela para testes	 drop table Teste
se precisar redefinir o campo identity para um outro valor fixo, veja este post: http://forum.imasters.com.br/index.php?showtopic=224853

 

 

AUTOR: "eriva_br"

 

Dúvidas, criticas, contribuições, correções e adições seram bem vindas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso chamar uma procedure e ainda assim o identity continua desabilitado?

se a chamada da procedure for na mesma conexão que foi executado o comando IDENTITY_INSERT então continuara desabilitado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.