IDENTITY EM CAMPO NUMA TABELA JÁ EXISTENTE

 Tópico anterior Próximo tópico Novo tópico

IDENTITY EM CAMPO NUMA TABELA JÁ EXISTENTE

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#476093 - 29/08/2017 23:31:03

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Tem como colocar IDENTITY em campo chave de tabela já existente no SQL Server 2014
Tenho uma coluna Código como Int e que fazer ela virar auto increment
tem como ou só apagando a coluna e colocando novamente como Identity
Caso ter que inserir novamente a coluna como Identity, tem uma maneira simples de fazer ela ficar como a primeira coluna? pq quando insere Novos campos ele sempre vai pro final da tabela

Grato




#476128 - 30/08/2017 14:10:04

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe

Última edição em 30/08/2017 14:10:35 por CLEVERTON

Já tentou isso ?

SET IDENTITY_INSERT SuaTabela OFF

Caso não funcione, vc pode tentar trabalhar com SEQUENCE
http://www.linhadecodigo.com.br/artigo/3378/utilizando-sequences-no-microsoft-sql-server-2012.aspx




#476150 - 30/08/2017 18:30:24

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Citação:
:
Já tentou isso ?

SET IDENTITY_INSERT SuaTabela OFF

Caso não funcione, vc pode tentar trabalhar com SEQUENCE
http://www.linhadecodigo.com.br/artigo/3378/utilizando-sequences-no-microsoft-sql-server-2012.aspx


A intensão é alterar uma coluna já existente. Colocar uma coluna ou criar uma tabela com IDENTITY sem problema



#476151 - 30/08/2017 20:58:13

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Testei agora com SqlServer 2012,crei uma tabela com primarykey normal tipo  cod int.
Adicionei um registro nela e depois mudei para IDENTITY e funcionou normal
Uso o Sql Manager For Sql Server.



#476152 - 30/08/2017 21:58:12

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Tenta isso

ALTER TABLE SuaTabela ALTER COLUMN ColunaCodigo INT IDENTITY (1, 1)



#476158 - 31/08/2017 00:07:56

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Última edição em 31/08/2017 00:09:59 por JCM0867

Citação:
:
Testei agora com SqlServer 2012,crei uma tabela com primarykey normal tipo  cod int.
Adicionei um registro nela e depois mudei para IDENTITY e funcionou normal
Uso o Sql Manager For Sql Server.

Via código

Citação:
:
Tenta isso

ALTER TABLE SuaTabela ALTER COLUMN ColunaCodigo INT IDENTITY (1, 1)

Já tinha testado assim
Não aceita




Resposta escolhida #476180 - 31/08/2017 14:15:35

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


Via script não tem como, terá que alterar pelo design da tabela.



#476181 - 31/08/2017 14:25:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Citação:
:
Via script não tem como, terá que alterar pelo design da tabela.

Isso é impossível... Tudo que se altera no "design da tabela" é intrinsicamente um comando SQL. Pode até não ser um comando só, que seja um script mais longo, ainda assim, é sempre possível.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#476187 - 31/08/2017 15:24:37

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


Última edição em 31/08/2017 15:26:13 por LUIS2014

Ok KERPLUNK, com uma linha não tem como, mas com 3 sim kkkkk

tenta assim JCM0867

crie uma tabela igual a original mas com o campo já com o identity
feito isso só executar

Alter Table NomeTabelaOriginal switch to NovaTabela
drop NomeTabelaOriginal
exec sp_rename 'NovaTabela','NomeTabelaOriginal '

antes de dar um drop na tabela original, confirme se os dados foram transferidos.











#476190 - 31/08/2017 16:14:13

OCELOT
SOROCABA
Cadast. em:Março/2012


Tome cuidado ao querer usar campo do tipo IDENTITY como se fosse um simples auto incremento, pois quando a instância é reiniciada ele pula cerca de 1000 números, isso acontece desde o SQL Server 2012



#476203 - 31/08/2017 19:22:32

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Se esses não resolveram. Acredito que vc vai ter que;

1: Criar nova coluna com IDENTITY
2: Desativar o Identity ( como mostra acima ) da nova coluna
3: dar um update com os dados da coluna original
4: deletar a coluna original:
5: ativar o identity
6: renomear a nova coluna



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JCM0867 em 12/09/2017 18:02:30