IDENTITY EM CAMPO NUMA TABELA J? EXISTENTE

JCM0867 29/08/2017 23:31:03
#476093
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
CLEVERTON 30/08/2017 14:10:04
#476128
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
JCM0867 30/08/2017 18:30:24
#476150
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
OMAR2011 30/08/2017 20:58:13
#476151
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.
CLEVERTON 30/08/2017 21:58:12
#476152
Tenta isso

ALTER TABLE SuaTabela ALTER COLUMN ColunaCodigo INT IDENTITY (1, 1)
JCM0867 31/08/2017 00:07:56
#476158
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
LUIS2014 31/08/2017 14:15:35
#476180
Resposta escolhida
Via script não tem como, terá que alterar pelo design da tabela.
KERPLUNK 31/08/2017 14:25:01
#476181
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.
LUIS2014 31/08/2017 15:24:37
#476187
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.







OCELOT 31/08/2017 16:14:13
#476190
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
CLEVERTON 31/08/2017 19:22:32
#476203
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
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas